FreeCalypso > hg > tcs211-c139
comparison g23m/condat/ms/src/mfw/mfw_bt.c @ 0:509db1a7b7b8
initial import: leo2moko-r1
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 01 Jun 2015 03:24:05 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:509db1a7b7b8 |
---|---|
1 /* | |
2 +--------------------------------------------------------------------+ | |
3 | PROJECT: MMI-Framework (8445) $Workfile:: mfw_bt.c $| | |
4 | $Author:: Rm $Revision:: 1 $| | |
5 | CREATED: 03.01.01 $Modtime:: 03.01.01 17:21 $| | |
6 | STATE : code | | |
7 +--------------------------------------------------------------------+ | |
8 | |
9 | |
10 MODULE : MFW_BT | |
11 | |
12 PURPOSE : This modul contains the functions for MFW-BT management. | |
13 | |
14 | |
15 */ | |
16 #define ENTITY_MFW | |
17 | |
18 #include <string.h> | |
19 #include <stdio.h> | |
20 #include <stdlib.h> | |
21 | |
22 #include "typedefs.h" | |
23 #include "vsi.h" | |
24 #include "pei.h" | |
25 #include "custom.h" | |
26 #include "gsm.h" | |
27 | |
28 #include "p_btp.h" | |
29 #include "Bti.h" | |
30 #include "bti_btp.h" | |
31 #include "bti_cb.h" | |
32 | |
33 #include "mfw_mfw.h" | |
34 #include "mfw_bt.h" | |
35 #include "mfw_bta.h" | |
36 #include "mfw_acie.h" | |
37 #include "mfw_win.h" | |
38 | |
39 /* static used structures/variables */ | |
40 EXTERN MfwHdr * current_mfw_elem; | |
41 | |
42 /* | |
43 +--------------------------------------------------------------------+ | |
44 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
45 | STATE : code ROUTINE : bt_init | | |
46 +--------------------------------------------------------------------+ | |
47 | |
48 PURPOSE : initialize BT manager | |
49 | |
50 */ | |
51 int bt_init (void) | |
52 { | |
53 TRACE_FUNCTION("mfw_bt:bt_init()"); | |
54 /* | |
55 * install prim handler (primitives directly to MFW) | |
56 */ | |
57 pSlotBt = aci_create(bta_response_cb,NULL); | |
58 /* | |
59 * initialize internal lists for found services | |
60 */ | |
61 found_headset.service = MFW_BT_HEADSET; | |
62 found_headset.device_id = NULL; | |
63 found_dial_up.service = MFW_BT_DIAL_UP; | |
64 found_dial_up.device_id = NULL; | |
65 found_fax.service = MFW_BT_FAX_GW; | |
66 found_fax.device_id = NULL; | |
67 found_opp.service = MFW_BT_OPP; | |
68 found_opp.device_id = NULL; | |
69 found_sync.service = MFW_BT_SYNC; | |
70 found_sync.device_id = NULL; | |
71 found_sync_cmd.service = MFW_BT_SYNC_CMD; | |
72 found_sync_cmd.device_id = NULL; | |
73 return TRUE; | |
74 } | |
75 /* | |
76 +--------------------------------------------------------------------+ | |
77 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
78 | STATE : code ROUTINE : bt_exit | | |
79 +--------------------------------------------------------------------+ | |
80 | |
81 PURPOSE : finalize BT manager | |
82 | |
83 */ | |
84 void bt_exit (void) | |
85 { | |
86 TRACE_FUNCTION("bt_exit()"); | |
87 /* | |
88 * remove prim handler | |
89 */ | |
90 aci_delete(pSlotBt); | |
91 } | |
92 /* | |
93 +--------------------------------------------------------------------+ | |
94 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
95 | STATE : code ROUTINE : bt_create | | |
96 +--------------------------------------------------------------------+ | |
97 | |
98 PURPOSE : create BT event handler and control block | |
99 | |
100 */ | |
101 T_MFW_HND bt_create (MfwHnd hWin, MfwEvt event, MfwCb cbfunc) | |
102 { | |
103 MfwHdr *hdr; | |
104 T_MFW_BT *bt_para; | |
105 MfwHdr *insert_status =0; | |
106 | |
107 TRACE_FUNCTION("bt_create()"); | |
108 | |
109 hdr = (MfwHdr *) mfwAlloc(sizeof(MfwHdr)); | |
110 bt_para = (T_MFW_BT *) mfwAlloc(sizeof(T_MFW_BT)); | |
111 | |
112 if (!hdr || !bt_para) | |
113 { | |
114 TRACE_ERROR("ERROR: bt_create() Mem Alloc Failed."); | |
115 | |
116 if(hdr) | |
117 mfwFree((U8*)hdr,sizeof(MfwHdr)); | |
118 | |
119 if(bt_para) | |
120 mfwFree((U8*)bt_para,sizeof(T_MFW_BT)); | |
121 | |
122 return 0; | |
123 } | |
124 | |
125 bt_para->emask = event; | |
126 bt_para->handler = cbfunc; /* event callback function */ | |
127 | |
128 hdr->data = bt_para; | |
129 hdr->type = MfwTypBt; | |
130 | |
131 insert_status= mfwInsert((MfwHdr *) hWin,hdr); /* handle is brought in chain */ | |
132 if(!insert_status) | |
133 { | |
134 TRACE_ERROR("ERROR: bt_create() Failed to Install Handler. "); | |
135 mfwFree((U8*)hdr,sizeof(MfwHdr)); | |
136 mfwFree((U8*)bt_para,sizeof(T_MFW_BT)); | |
137 return 0; | |
138 } | |
139 return insert_status; | |
140 } | |
141 /* | |
142 +--------------------------------------------------------------------+ | |
143 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
144 | STATE : code ROUTINE : bt_delete | | |
145 +--------------------------------------------------------------------+ | |
146 | |
147 PURPOSE : delete BT event handler and control block, free Memory | |
148 | |
149 */ | |
150 MfwRes bt_delete (MfwHnd h) | |
151 { | |
152 TRACE_FUNCTION("bt_delete()"); | |
153 | |
154 if (!h || !((MfwHdr *) h)->data) | |
155 return MfwResIllHnd; | |
156 | |
157 if (!mfwRemove((MfwHdr *) h)) | |
158 return MfwResIllHnd; | |
159 | |
160 mfwFree((U8 *) ((MfwHdr *) h)->data,sizeof(T_MFW_BT)); | |
161 mfwFree((U8 *) h,sizeof(MfwHdr)); | |
162 | |
163 return MfwResOk; | |
164 } | |
165 /* | |
166 +--------------------------------------------------------------------+ | |
167 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
168 | STATE : code ROUTINE : bt_signal | | |
169 +--------------------------------------------------------------------+ | |
170 | |
171 PURPOSE : Send a signal to MMI | |
172 | |
173 */ | |
174 void bt_signal (MfwEvt event, void *para) | |
175 { /*MC, SPR 1389, we have to enable the display whenever | |
176 we send an event up to the MMI*/ | |
177 UBYTE temp = dspl_Enable(0); | |
178 | |
179 TRACE_FUNCTION ("bt_signal()"); | |
180 | |
181 if (mfwSignallingMethod EQ 0) /* default search method (old bmi design) */ | |
182 { | |
183 if (mfwFocus) /* look for element in focussed chain */ | |
184 if (bt_sign_exec(mfwFocus,event,para)) | |
185 { dspl_Enable(temp);/*MC, SPR 1389*/ | |
186 return; | |
187 } | |
188 if (mfwRoot) /* look for element in root */ | |
189 bt_sign_exec(mfwRoot,event,para); | |
190 } | |
191 else /* new bmi design */ | |
192 { | |
193 MfwHdr * h = 0; | |
194 /* | |
195 * Focus set, then start here | |
196 */ | |
197 if (mfwFocus) | |
198 h = mfwFocus; | |
199 /* | |
200 * Focus not set, then start root | |
201 */ | |
202 if (!h) | |
203 h = mfwRoot; | |
204 /* | |
205 * No elements available, return | |
206 */ | |
207 while (h) | |
208 { | |
209 /* | |
210 * Signal consumed, then return | |
211 */ | |
212 if (bt_sign_exec (h, event, para)) | |
213 { dspl_Enable(temp);/*MC, SPR 1389*/ | |
214 return; | |
215 } | |
216 /* | |
217 * All windows tried inclusive root | |
218 */ | |
219 if (h == mfwRoot) | |
220 { dspl_Enable(temp);/*MC, SPR 1389*/ | |
221 return; | |
222 } | |
223 /* | |
224 * get parent window | |
225 */ | |
226 h = mfwParent(mfwParent(h)); | |
227 if(h) | |
228 h = ((MfwWin * )(h->data))->elems; | |
229 } | |
230 bt_sign_exec (mfwRoot, event, para); | |
231 } | |
232 dspl_Enable(temp);/*MC, SPR 1389*/ | |
233 | |
234 } | |
235 /* | |
236 +--------------------------------------------------------------------+ | |
237 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
238 | STATE : code ROUTINE : bt_sign_exec | | |
239 +--------------------------------------------------------------------+ | |
240 | |
241 PURPOSE : Send a signal if BT management handler | |
242 | |
243 */ | |
244 int bt_sign_exec (MfwHdr *cur_elem, MfwEvt event, T_MFW_BT_PARA *para) | |
245 { | |
246 T_MFW_BT_SERVICE_SEARCH_CNF * search_confirmation_ptr; | |
247 T_MFW_BT_DEVICE_SEARCH_CNF * dev_search_conf_ptr; | |
248 T_MFW_BT_DISCONNECT_CNF * discon_ptr; | |
249 T_MFW_BT_DISCON_DUN_FAX_CNF * discon_dun_fax_ptr; | |
250 T_MFW_BT_DISCON_DUN_FAX_IND * discon_dun_fax_ind_ptr; | |
251 T_MFW_BT_DISCONNECT_IND * discon_i_ptr; | |
252 T_MFW_BT_CONNECT_CNF * connect_ptr; | |
253 T_MFW_BT_SRV_SYNC_CNF * srv_sync_complete; | |
254 T_MFW_BT_SRV_SYNC_AUTH_IND * srv_sync_auth_ind; | |
255 T_MFW_BT_SRV_SYNC_PULL_IND * srv_sync_pull_ind; | |
256 T_MFW_BT_SRV_SYNC_PUSH_IND * srv_sync_push_ind; | |
257 T_MFW_BT_SRV_SYNC_PUSH_CNF * srv_sync_push_cnf; | |
258 T_MFW_BT_BD_ADDR dummy_address[MFW_BT_ADDR_MAX_LEN]; | |
259 | |
260 memset(&dummy_address,0,sizeof(dummy_address)); | |
261 | |
262 TRACE_FUNCTION("bt_sign_exec()"); | |
263 | |
264 while (cur_elem) | |
265 { | |
266 if (cur_elem->type EQ MfwTypBt) | |
267 { | |
268 T_MFW_BT *bt_data; | |
269 bt_data = (T_MFW_BT *) cur_elem->data; | |
270 if (bt_data->emask & event) | |
271 { | |
272 bt_data->event = event; | |
273 switch (event) | |
274 { | |
275 | |
276 case BT_CREATE_PROFILE_CNF: | |
277 memcpy(&bt_data->para.prof_create_cnf, para,sizeof(T_MFW_BT_PROFILE_CREATE_CNF)); | |
278 break; | |
279 | |
280 case BT_DELETE_PROFILE_CNF: | |
281 memcpy(&bt_data->para.prof_delete_cnf, para,sizeof(T_MFW_BT_PROFILE_DELETE_CNF)); | |
282 break; | |
283 | |
284 case BT_INIT_PROFILE_CNF: /* confirms initialize/reconfiguration of service profile */ | |
285 memcpy(&bt_data->para.profile, | |
286 para,sizeof(T_MFW_BT_PROFILE_CNF)); | |
287 /* service,result_bd,subtype(,mfw_opp_mode,mfw_sync_mode,mfw_syn_aut_mode) with event BT_INIT_PROFILE_CNF to MMI */ | |
288 break; | |
289 | |
290 case BT_DEINIT_PROFILE_CNF:/* confirms deinitialize profile */ | |
291 memcpy(&bt_data->para.profile, | |
292 para,sizeof(T_MFW_BT_PROFILE_CNF)); | |
293 /* service,result_bd,subtype(,mfw_opp_mode,mfw_sync_mode,mfw_syn_aut_mode) with event BT_DEINIT_PROFILE_CNF to MMI */ | |
294 break; | |
295 } | |
296 | |
297 switch (event) | |
298 { | |
299 case BT_RESTORE_LIST_RESULT:/* result restoring default service list */ | |
300 memcpy(&bt_data->para.restore_conf, | |
301 para,sizeof(T_MFW_BT_REST_CONFIG)); | |
302 /* service and cause with event BT_RESTORE_LIST_RESULT to MMI */ | |
303 break; | |
304 | |
305 case BT_RESTORE_CONF_RESULT:/* result restoring configuration parameter */ | |
306 memcpy(&bt_data->para.restore_conf, | |
307 para,sizeof(T_MFW_BT_REST_CONFIG)); | |
308 /* service and cause with event BT_RESTORE_CONF_RESULT to MMI */ | |
309 break; | |
310 | |
311 case BT_SERVICE_SEARCH_CNF: | |
312 search_confirmation_ptr = (T_MFW_BT_SERVICE_SEARCH_CNF *)para; | |
313 if(search_confirmation_ptr->service EQ MFW_BT_HEADSET) | |
314 { | |
315 /* pointer of list of detected hs to mmi */ | |
316 bt_data->para.service_lst_p.list_ptr = &found_headset; | |
317 } | |
318 else if(search_confirmation_ptr->service EQ MFW_BT_DIAL_UP) | |
319 { | |
320 /* pointer of list of detected dial up to mmi */ | |
321 bt_data->para.service_lst_p.list_ptr = &found_dial_up; | |
322 } | |
323 else if(search_confirmation_ptr->service EQ MFW_BT_FAX_GW) | |
324 { | |
325 /* pointer of list of detected fax to mmi */ | |
326 bt_data->para.service_lst_p.list_ptr = &found_fax; | |
327 } | |
328 else if(search_confirmation_ptr->service EQ MFW_BT_OPP) | |
329 { | |
330 /* pointer of list of detected opp to mmi */ | |
331 bt_data->para.service_lst_p.list_ptr = &found_opp; | |
332 } | |
333 else if(search_confirmation_ptr->service EQ MFW_BT_SYNC) | |
334 { | |
335 /* pointer of list of detected sync server to mmi */ | |
336 bt_data->para.service_lst_p.list_ptr = &found_sync; | |
337 } | |
338 else if(search_confirmation_ptr->service EQ MFW_BT_SYNC_CMD) | |
339 { | |
340 /* pointer of list of detected sync server with command support to mmi */ | |
341 bt_data->para.service_lst_p.list_ptr = &found_sync_cmd; | |
342 } | |
343 break; | |
344 | |
345 case BT_DEVICE_SEARCH_CNF: | |
346 dev_search_conf_ptr = (T_MFW_BT_DEVICE_SEARCH_CNF *)para; | |
347 if(dev_search_conf_ptr->result EQ BTI_OK) | |
348 {/* pointer of list of found services to mmi */ | |
349 bt_data->para.device_lst_p.list_ptr = &service_list; | |
350 } | |
351 break; | |
352 | |
353 case BT_DEVICE_FOUND_IND: /* new device was found */ | |
354 memcpy(&bt_data->para.device_ind, para, sizeof(T_MFW_BT_DEVICE_IND)); | |
355 break; | |
356 | |
357 case BT_SERVICE_FOUND_IND: /* new service was found */ | |
358 memcpy(&bt_data->para.service_ind, para, sizeof(T_MFW_BT_SERVICE_IND)); | |
359 break; | |
360 | |
361 case BT_CONNECT_DEVICE_CNF: | |
362 connect_ptr = (T_MFW_BT_CONNECT_CNF *)para; | |
363 if(connect_ptr->service EQ MFW_BT_HEADSET) | |
364 { | |
365 memcpy(&bt_data->para.connect_cnf, | |
366 para,sizeof(T_MFW_BT_CONNECT_CNF)); | |
367 } | |
368 else | |
369 return FALSE; | |
370 break; | |
371 | |
372 case BT_SRV_SYNC_CNF: | |
373 srv_sync_complete = (T_MFW_BT_SRV_SYNC_CNF *)para; | |
374 if(srv_sync_complete->service EQ MFW_BT_SYNC) | |
375 { | |
376 memcpy(&bt_data->para.srv_sync_cnf, | |
377 para,sizeof(T_MFW_BT_SRV_SYNC_CNF)); | |
378 } | |
379 else | |
380 return FALSE; | |
381 break; | |
382 | |
383 case BT_SRV_SYNC_AUTH_IND: | |
384 srv_sync_auth_ind = (T_MFW_BT_SRV_SYNC_AUTH_IND *)para; | |
385 if(srv_sync_auth_ind->service EQ MFW_BT_SYNC) | |
386 { | |
387 memcpy(&bt_data->para.srv_sync_auth, | |
388 para,sizeof(T_MFW_BT_SRV_SYNC_AUTH_IND)); | |
389 } | |
390 else | |
391 return FALSE; | |
392 break; | |
393 | |
394 case BT_SRV_SYNC_PULL_IND: | |
395 srv_sync_pull_ind = (T_MFW_BT_SRV_SYNC_PULL_IND *)para; | |
396 if(srv_sync_pull_ind->service EQ MFW_BT_SYNC) | |
397 { | |
398 memcpy(&bt_data->para.sync_pull_ind, | |
399 para,sizeof(T_MFW_BT_SRV_SYNC_PULL_IND)); | |
400 } | |
401 else | |
402 return FALSE; | |
403 break; | |
404 | |
405 case BT_SRV_SYNC_PUSH_IND: | |
406 srv_sync_push_ind = (T_MFW_BT_SRV_SYNC_PUSH_IND *)para; | |
407 if(srv_sync_push_ind->service EQ MFW_BT_SYNC) | |
408 { | |
409 memcpy(&bt_data->para.sync_push_ind, | |
410 para,sizeof(T_MFW_BT_SRV_SYNC_PUSH_IND)); | |
411 } | |
412 else | |
413 return FALSE; | |
414 break; | |
415 | |
416 case BT_SRV_SYNC_PUSH_CNF: | |
417 srv_sync_push_cnf = (T_MFW_BT_SRV_SYNC_PUSH_CNF *)para; | |
418 if(srv_sync_push_cnf->service EQ MFW_BT_SYNC) | |
419 { | |
420 memcpy(&bt_data->para.sync_push_cnf, | |
421 para,sizeof(T_MFW_BT_SRV_SYNC_PUSH_CNF)); | |
422 } | |
423 else | |
424 return FALSE; | |
425 break; | |
426 } | |
427 | |
428 switch (event) | |
429 { | |
430 | |
431 case BT_HSG_SPECIFIC_CMD_CFM: | |
432 memcpy(&bt_data->para.hsg_specific_cmd_cfm, para,sizeof(T_MFW_BT_HSG_SPECIFIC_CMD_CFM)); | |
433 break; | |
434 | |
435 case BT_HSG_HEADSET_CONNECTION_IND: | |
436 memcpy(&bt_data->para.hsg_headset_connection_ind, para,sizeof(T_MFW_BT_HSG_HEADSET_CONNECTION_IND)); | |
437 break; | |
438 | |
439 case BT_HSG_SAVE_LIST_CNF: | |
440 memcpy(&bt_data->para.hsg_save_list_cnf, para,sizeof(T_MFW_BT_HSG_SAVE_LIST_CNF)); | |
441 break; | |
442 } | |
443 | |
444 switch (event) | |
445 { | |
446 case BT_CONNECT_DEVICE_IND: | |
447 memcpy(&bt_data->para.connect_indication, | |
448 para,sizeof(T_MFW_BT_CONNECT_IND)); | |
449 /* service with event BT_CONNECT_DEVICE_IND to MMI */ | |
450 break; | |
451 | |
452 case BT_CONNECT_DEVICE_INF: | |
453 memcpy(&bt_data->para.connect_information, | |
454 para,sizeof(T_MFW_BT_CONNECT_INF)); | |
455 /* service with event BT_CONNECT_DEVICE_INF to MMI */ | |
456 break; | |
457 | |
458 | |
459 case BT_DISCONNECT_DEVICE_CNF: | |
460 discon_ptr = (T_MFW_BT_DISCONNECT_CNF *)para; | |
461 if(discon_ptr->service EQ MFW_BT_HEADSET) | |
462 { | |
463 /* confirms disconnection */ | |
464 memcpy(&bt_data->para.disconnect_cnf, | |
465 para,sizeof(T_MFW_BT_DISCONNECT_CNF)); | |
466 /* service, addr with event BT_DISCONNECT_DEVICE_CNF to MMI */ | |
467 break; | |
468 } | |
469 else | |
470 return FALSE; | |
471 | |
472 case BT_DISCON_DUN_FAX_CNF: | |
473 discon_dun_fax_ptr = (T_MFW_BT_DISCON_DUN_FAX_CNF *)para; | |
474 if((discon_dun_fax_ptr->service EQ MFW_BT_DIAL_UP) OR | |
475 (discon_dun_fax_ptr->service EQ MFW_BT_FAX_GW)) | |
476 { | |
477 /* confirms disconnection by remote dial up/fax */ | |
478 memcpy(&bt_data->para.disc_dun_fax_cnf, | |
479 para,sizeof(T_MFW_BT_DISCON_DUN_FAX_CNF)); | |
480 /* device, result with event BT_DISCON_DUN_FAX_CNF to MMI */ | |
481 break; | |
482 } | |
483 else | |
484 return FALSE; | |
485 | |
486 case BT_DISCONNECT_DEVICE_IND: | |
487 discon_i_ptr = (T_MFW_BT_DISCONNECT_IND *)para; | |
488 if(discon_i_ptr->service EQ MFW_BT_HEADSET) | |
489 { | |
490 /* confirms indication */ | |
491 memcpy(&bt_data->para.disconnect_ind, | |
492 para,sizeof(T_MFW_BT_DISCONNECT_IND)); | |
493 /* service, addr, error_cause with event BT_DISCONNECT_DEVICE_IND to MMI */ | |
494 break; | |
495 } | |
496 else | |
497 return FALSE; | |
498 | |
499 case BT_DISCON_DUN_FAX_IND: | |
500 discon_dun_fax_ind_ptr = (T_MFW_BT_DISCON_DUN_FAX_IND *)para; | |
501 if((discon_dun_fax_ind_ptr->service EQ MFW_BT_DIAL_UP) OR | |
502 (discon_dun_fax_ind_ptr->service EQ MFW_BT_FAX_GW)) | |
503 { | |
504 /* indicats disconnection by remote dial up */ | |
505 memcpy(&bt_data->para.con_dun_fax_ind, | |
506 para,sizeof(T_MFW_BT_DISCON_DUN_FAX_IND)); | |
507 /* device, result with event BT_DISCON_DUN_FAX_IND to MMI */ | |
508 break; | |
509 } | |
510 else | |
511 return FALSE; | |
512 } | |
513 | |
514 switch (event) /* BT CTRL */ | |
515 { | |
516 case BT_CHNG_LOCAL_NAME: | |
517 memcpy(&bt_data->para.chng_local_name, para, sizeof(T_MFW_BT_CHNG_LOCAL_NAME)); | |
518 break; | |
519 | |
520 case BT_READ_LOCAL_NAME: | |
521 memcpy(&bt_data->para.read_local_name, para, sizeof(T_MFW_BT_READ_LOCAL_NAME)); | |
522 break; | |
523 | |
524 case BT_REMOTE_DEV_INFO_RES: | |
525 memcpy(&bt_data->para.remote_dev_info, para, sizeof(T_MFW_BT_REMOTE_DEV_INFO_RES)); | |
526 break; | |
527 | |
528 case BT_CHNG_CONNECTABLE_MODE: | |
529 memcpy(&bt_data->para.chng_conn_mode, para, sizeof(T_MFW_BT_CHNG_CONNECTABLE_MODE)); | |
530 break; | |
531 | |
532 case BT_CHNG_DISCOVERABLE_MODE: | |
533 memcpy(&bt_data->para.chng_disc_mode, para, sizeof(T_MFW_BT_CHNG_DISCOVERABLE_MODE)); | |
534 break; | |
535 | |
536 case BT_READ_BD_ADDR: | |
537 memcpy(&bt_data->para.read_bd_addr, para, sizeof(T_MFW_BT_READ_BD_ADDR)); | |
538 break; | |
539 | |
540 case BT_TRUSTED_DEV_LIST_FULL: | |
541 break; | |
542 | |
543 } | |
544 | |
545 switch (event) | |
546 { | |
547 | |
548 case BT_TRANSFER_AUDIO_IN_CNF: | |
549 /* confirms transfer audio out */ | |
550 memcpy(&bt_data->para.audio_in_cnf, | |
551 para,sizeof(T_MFW_BT_TRANSFER_AUDIO_IN_CNF)); | |
552 /* service, addr with event BT_TRANSFER_AUDIO_IN_CNF to MMI */ | |
553 break; | |
554 | |
555 case BT_TRANSFER_AUDIO_OUT_CNF: | |
556 /* confirms transfer audio in */ | |
557 memcpy(&bt_data->para.audio_out_cnf, | |
558 para,sizeof(T_MFW_BT_TRANSFER_AUDIO_OUT_CNF)); | |
559 /* service, addr with event BT_TRANSFER_AUDIO_OUT_CNF to MMI */ | |
560 break; | |
561 | |
562 case BT_AUTHORIZATION_IND: | |
563 /* indicats remote device authorization request */ | |
564 memcpy(&bt_data->para.authoriz_ind, | |
565 para,sizeof(T_MFW_BT_AUTHORIZATION_IND)); | |
566 /* addr,remote name,service name, authorization_mask,connection_dir with event BT_AUTHORIZATION_IND to MMI */ | |
567 break; | |
568 | |
569 case BT_PIN_IND: | |
570 /* indicats remote pin request */ | |
571 memcpy(&bt_data->para.pin_ind, | |
572 para,sizeof(T_MFW_BT_PIN_IND)); | |
573 /* addr,name with event BT_PIN_IND to MMI */ | |
574 break; | |
575 | |
576 case BT_RECONFIG_PROFILE_CNF: | |
577 /* confirm reconfiguration profile */ | |
578 memcpy(&bt_data->para.profile, | |
579 para,sizeof(T_MFW_BT_PROFILE_CNF)); | |
580 /* service, result_bd(,mfw_opp_mode,mfw_sync_mode,mfw_syn_aut_mode) with event BT_RECONFIG_PROFILE_CNF to MMI */ | |
581 break; | |
582 | |
583 case BT_DEVICE_PAIRED_IND: | |
584 /* confirm pairing procedure */ | |
585 memcpy(&bt_data->para.pair_ind, | |
586 para,sizeof(T_MFW_BT_DEV_PAIR_IND)); | |
587 /* remote addr, remote name and pair_res with event BT_DEVICE_PAIRED_IND to MMI */ | |
588 break; | |
589 | |
590 case BT_CALL_MONITORING_STATUS: | |
591 /* indicats call monitoring events by dun/fax */ | |
592 memcpy(&bt_data->para.call_status, | |
593 para,sizeof(T_MFW_BT_CALL_STATUS_DUN_FAX)); | |
594 /* device and call status with event BT_CALL_MONITORING_STATUS to MMI */ | |
595 break; | |
596 | |
597 case BT_OPP_SERV_PUT_IND: | |
598 /* indicats put request by opp server */ | |
599 memcpy(&bt_data->para.opp_s_obj, | |
600 para,sizeof(T_MFW_BT_OPP_PUT_IND)); | |
601 /* device,subtype,client_addr,object with event BT_OPP_SERV_PUT_IND to MMI */ | |
602 break; | |
603 | |
604 case BT_OPP_SERV_PUT_CNF: | |
605 /* indicats put request by opp server (server side) */ | |
606 memcpy(&bt_data->para.opp_s_obj_cnf, | |
607 para,sizeof(T_MFW_BT_OPP_PUT_CNF)); | |
608 /* device,subtype,client_addr,object,error with event BT_OPP_SERV_PUT_CNF to MMI */ | |
609 break; | |
610 | |
611 case BT_OPP_OBJECT_PUSH_CNF: | |
612 /* indicats push object to opp server (client side)*/ | |
613 memcpy(&bt_data->para.opp_cl_push_ob_cnf, | |
614 para,sizeof(T_MFW_BT_OPP_PUSH_CNF)); | |
615 /* device,subtype,server_addr,object,error with event BT_OPP_OBJECT_PUSH_CNF to MMI */ | |
616 break; | |
617 | |
618 case BT_OPP_OBJECT_PULL_CNF: | |
619 /* indicats push object from opp server (client side)*/ | |
620 memcpy(&bt_data->para.opp_cl_pull_ob_cnf, | |
621 para,sizeof(T_MFW_BT_OPP_PULL_CNF)); | |
622 /* device,subtype,server_addr,object,error with event BT_OPP_OBJECT_PULL_CNF to MMI */ | |
623 break; | |
624 } | |
625 | |
626 /*#ifdef PCA_6350*/ | |
627 switch (event) | |
628 { | |
629 case BT_PCA_GW_STATUS_CFM: | |
630 memcpy(&bt_data->para.pca_gw_status, para, sizeof(T_MFW_BT_PCA_GW_STATUS_CFM)); | |
631 break; | |
632 case BT_PCA_GW_LINK_MONITORING: | |
633 memcpy(&bt_data->para.pca_link_mon, para, sizeof(T_MFW_BT_PCA_GW_LINK_MONITORING)); | |
634 break; | |
635 case BT_PCA_GW_CALL_MONITORING: | |
636 memcpy(&bt_data->para.pca_call_mon, para, sizeof(T_MFW_BT_PCA_GW_CALL_MONITORING)); | |
637 break; | |
638 case BT_PCA_GW_HANGUP_CFM: | |
639 memcpy(&bt_data->para.pca_hangup, para, sizeof(T_MFW_BT_PCA_GW_HANGUP_CFM)); | |
640 break; | |
641 } | |
642 /*#endif*/ /* PCA_6350 */ | |
643 if (bt_data->handler) | |
644 { | |
645 current_mfw_elem = cur_elem; | |
646 /* to call back function in mmi */ | |
647 if ((*(bt_data->handler))(bt_data->event, | |
648 (void *) &bt_data->para)) | |
649 return TRUE; | |
650 } | |
651 } | |
652 }/* next element for look for type of handle */ | |
653 cur_elem = cur_elem->next; | |
654 } | |
655 return FALSE; | |
656 } | |
657 /* | |
658 +--------------------------------------------------------------------+ | |
659 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
660 | STATE : code ROUTINE : bt_init_profile_hsg_cl| | |
661 +--------------------------------------------------------------------+ | |
662 | |
663 PURPOSE : configure and initialize a BT headset profile in client mode | |
664 | |
665 */ | |
666 T_MFW_BT_RESULT_BT bt_init_profile_hsg_cl (T_MFW_BT_SERVICE_TYPE service, | |
667 T_MFW_BT_HSG_CLIENT_CONFIG mfw_config) | |
668 { | |
669 T_BTI_HSG_CLIENT_CONF bt_config; | |
670 | |
671 TRACE_FUNCTION ("bt_init_profile_hsg_cl()"); | |
672 | |
673 memset(&bt_config,0,sizeof(bt_config)); | |
674 | |
675 if(service EQ MFW_BT_HEADSET) | |
676 { | |
677 /* type of connection: | |
678 *** MFW_BT_AUTO_OUTG_DEF_CONN_OFF or | |
679 MFW_BT_AUTO_OUTG_DEF_CONN_ON | |
680 (connection with default pre-defined headset as soon as it receives a | |
681 RING command from GSM) | |
682 *** | |
683 */ | |
684 switch(mfw_config.config_mode) | |
685 { | |
686 case MFW_BT_AUTO_OUTG_DEF_CONN_OFF: | |
687 bt_config.config_mode = BTI_AUTO_OUTG_DEF_CONN_OFF; | |
688 break; | |
689 case MFW_BT_AUTO_OUTG_DEF_CONN_ON: | |
690 bt_config.config_mode = BTI_AUTO_OUTG_DEF_CONN_ON; | |
691 break; | |
692 } | |
693 | |
694 bt_config.security = mfw_config.security; | |
695 | |
696 switch(btibtp_init_profile_hsg_req_cl((T_BTI_DEVICE_TYPE)service,bt_config)) | |
697 {/* BTP_INIT_PROFILE_REQ to BT */ | |
698 case BTP_OK: | |
699 return MFW_BT_EXECUTE; | |
700 case BTP_INVALID_PARAMETER: | |
701 return MFW_BT_INVALID_PARA; | |
702 case BTP_NOT_SUPP: | |
703 return MFW_BT_NO_SUPP; | |
704 case BTP_NOT_READY: | |
705 return MFW_BT_NOT_READY; | |
706 case BTP_INT_ERR: | |
707 return MFW_BT_INT_ERR; | |
708 case BTP_MEMORY_ERR: | |
709 return MFW_BT_MEM_ERR; | |
710 case BTP_NOK: | |
711 return MFW_BT_NOK; | |
712 } | |
713 } | |
714 return MFW_BT_FAIL; | |
715 } | |
716 | |
717 /* | |
718 +----------------------------------------------------------------------+ | |
719 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
720 | STATE : code ROUTINE : bt_init_profile_hsg_serv| | |
721 +----------------------------------------------------------------------+ | |
722 | |
723 PURPOSE : configure and initialize a BT headset profile in server mode | |
724 | |
725 */ | |
726 T_MFW_BT_RESULT_BT bt_init_profile_hsg_serv (T_MFW_BT_SERVICE_TYPE service, | |
727 T_MFW_BT_HSG_SERVER_CONFIG mfw_config) | |
728 { | |
729 T_BTI_HSG_SERVER_CONF bt_config; | |
730 | |
731 TRACE_FUNCTION ("bt_init_profile_hsg_serv()"); | |
732 | |
733 memset(&bt_config,0,sizeof(bt_config)); | |
734 | |
735 if(service EQ MFW_BT_HEADSET) | |
736 { | |
737 bt_config.conn_config = mfw_config.serv_con_conf; | |
738 /* length scan of connection requests of remote headsets * | |
739 /* default value: MFW_BT_CONN_SCAN_TIME_DEFAULT_VALUE */ | |
740 bt_config.conn_time = mfw_config.conn_time; | |
741 /* period between 2 scans of connection of remote headsets */ | |
742 /* default value: MFW_BT_CONN_SCAN_BREAK_DEFAULT_VALUE */ | |
743 bt_config.conn_break= mfw_config.conn_break; | |
744 /* number of phone number in phone list */ | |
745 bt_config.nb_phone = mfw_config.nb_phone; | |
746 /* phone number list of remote headset */ | |
747 memcpy(bt_config.phon_list,mfw_config.mfw_phone_list,sizeof(mfw_config.mfw_phone_list)); | |
748 /* associatd key list of remote headset */ | |
749 memcpy(bt_config.key_list,mfw_config.mfw_key_list,sizeof(mfw_config.mfw_key_list)); | |
750 | |
751 bt_config.security = mfw_config.security; | |
752 | |
753 switch(btibtp_init_profile_hsg_req_serv((T_BTI_DEVICE_TYPE)service,bt_config)) | |
754 {/* BTP_INIT_PROFILE_REQ to BT */ | |
755 case BTP_OK: | |
756 return MFW_BT_EXECUTE; | |
757 case BTP_INVALID_PARAMETER: | |
758 return MFW_BT_INVALID_PARA; | |
759 case BTP_NOT_SUPP: | |
760 return MFW_BT_NO_SUPP; | |
761 case BTP_NOT_READY: | |
762 return MFW_BT_NOT_READY; | |
763 case BTP_INT_ERR: | |
764 return MFW_BT_INT_ERR; | |
765 case BTP_MEMORY_ERR: | |
766 return MFW_BT_MEM_ERR; | |
767 case BTP_NOK: | |
768 return MFW_BT_NOK; | |
769 } | |
770 } | |
771 return MFW_BT_FAIL; | |
772 } | |
773 /* | |
774 +--------------------------------------------------------------------+ | |
775 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
776 | STATE : code ROUTINE : bt_init_profile_dun| | |
777 +--------------------------------------------------------------------+ | |
778 | |
779 PURPOSE : configure and initialize a BT dialup profile | |
780 | |
781 */ | |
782 T_MFW_BT_RESULT_BT bt_init_profile_dun (T_MFW_BT_SERVICE_TYPE service, | |
783 T_MFW_BT_DUN_CONFIG dun_filter) | |
784 { | |
785 T_BTI_DUN_CONF dun_config; | |
786 | |
787 TRACE_FUNCTION ("bt_init_profile_dun()"); | |
788 | |
789 memset(&dun_config,0,sizeof(dun_config)); | |
790 | |
791 if(service EQ MFW_BT_DIAL_UP) | |
792 {/* show status of BT link - informs if a serial port is opened between DUN-DT and DUN-GW */ | |
793 if((dun_filter.link_event EQ BTI_DUN_LINK_MONIT_ON) OR | |
794 (dun_filter.link_event EQ BTI_DUN_LINK_MONIT_OFF)) | |
795 { | |
796 dun_config.link_filter = dun_filter.link_event; | |
797 } | |
798 else | |
799 { | |
800 TRACE_EVENT ("Error:bt_init_profile_dun()"); | |
801 return MFW_BT_FAIL; | |
802 } | |
803 /* show status of data call */ | |
804 if((dun_filter.call_event EQ BTI_DUN_CALL_MONIT_ON) OR | |
805 (dun_filter.call_event EQ BTI_DUN_CALL_MONIT_OFF)) | |
806 { | |
807 dun_config.call_filter = dun_filter.call_event; | |
808 } | |
809 else | |
810 { | |
811 TRACE_EVENT ("Error:bt_init_profile_dun()"); | |
812 return MFW_BT_FAIL; | |
813 } | |
814 | |
815 switch(btibtp_init_profile_dun_req((T_BTI_DEVICE_TYPE)service,dun_config)) | |
816 {/* BTP_INIT_PROFILE_REQ to BT */ | |
817 case BTP_OK: | |
818 return MFW_BT_EXECUTE; | |
819 case BTP_INVALID_PARAMETER: | |
820 return MFW_BT_INVALID_PARA; | |
821 case BTP_NOT_SUPP: | |
822 return MFW_BT_NO_SUPP; | |
823 case BTP_NOT_READY: | |
824 return MFW_BT_NOT_READY; | |
825 case BTP_INT_ERR: | |
826 return MFW_BT_INT_ERR; | |
827 case BTP_MEMORY_ERR: | |
828 return MFW_BT_MEM_ERR; | |
829 case BTP_NOK: | |
830 return MFW_BT_NOK; | |
831 } | |
832 } | |
833 return MFW_BT_FAIL; | |
834 } | |
835 | |
836 /* | |
837 +--------------------------------------------------------------------+ | |
838 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
839 | STATE : code ROUTINE : bt_init_profile_fax| | |
840 +--------------------------------------------------------------------+ | |
841 | |
842 PURPOSE : configure and initialize a BT fax gateway profile | |
843 | |
844 */ | |
845 T_MFW_BT_RESULT_BT bt_init_profile_fax (T_MFW_BT_SERVICE_TYPE service, | |
846 T_MFW_BT_FAX_CONFIG fax_filter) | |
847 { | |
848 T_BTI_FAX_CONF fax_config; | |
849 | |
850 TRACE_FUNCTION ("bt_init_profile_fax()"); | |
851 | |
852 memset(&fax_config,0,sizeof(fax_config)); | |
853 | |
854 if(service EQ MFW_BT_FAX_GW) | |
855 {/* show status of BT link - informs if a serial port is opened between FAX-DT and FAX-GW */ | |
856 if((fax_filter.link_event EQ BTI_FAX_LINK_MONIT_ON) OR | |
857 (fax_filter.link_event EQ BTI_FAX_LINK_MONIT_OFF)) | |
858 { | |
859 fax_config.link_filter = fax_filter.link_event; | |
860 } | |
861 else | |
862 { | |
863 TRACE_EVENT ("Error:bt_init_profile_fax()"); | |
864 return MFW_BT_FAIL; | |
865 } | |
866 /* show status of data call */ | |
867 if((fax_filter.call_event EQ BTI_FAX_CALL_MONIT_ON) OR | |
868 (fax_filter.call_event EQ BTI_FAX_CALL_MONIT_OFF)) | |
869 { | |
870 fax_config.call_filter = fax_filter.call_event; | |
871 } | |
872 else | |
873 { | |
874 TRACE_EVENT ("Error:bt_init_profile_fax()"); | |
875 return MFW_BT_FAIL; | |
876 } | |
877 | |
878 switch(btibtp_init_profile_fax_req((T_BTI_DEVICE_TYPE)service,fax_config)) | |
879 {/* BTP_INIT_PROFILE_REQ to BT */ | |
880 case BTP_OK: | |
881 return MFW_BT_EXECUTE; | |
882 case BTP_INVALID_PARAMETER: | |
883 return MFW_BT_INVALID_PARA; | |
884 case BTP_NOT_SUPP: | |
885 return MFW_BT_NO_SUPP; | |
886 case BTP_NOT_READY: | |
887 return MFW_BT_NOT_READY; | |
888 case BTP_INT_ERR: | |
889 return MFW_BT_INT_ERR; | |
890 case BTP_MEMORY_ERR: | |
891 return MFW_BT_MEM_ERR; | |
892 case BTP_NOK: | |
893 return MFW_BT_NOK; | |
894 } | |
895 } | |
896 return MFW_BT_FAIL; | |
897 } | |
898 | |
899 /* | |
900 +--------------------------------------------------------------------+ | |
901 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
902 | STATE : code ROUTINE : bt_init_profile_opp| | |
903 +--------------------------------------------------------------------+ | |
904 | |
905 PURPOSE : configure and initialize a BT OPP client or server | |
906 */ | |
907 T_MFW_BT_RESULT_BT bt_init_profile_opp (T_MFW_BT_SERVICE_TYPE service, | |
908 T_MFW_BT_SUBTYPE_DEV subtype, | |
909 T_MFW_BT_OPP_SERVER_CONFIG serv_config) | |
910 { | |
911 T_BTI_OPP_SERVER_CONFIG bt_opp_s_conf; | |
912 | |
913 TRACE_FUNCTION ("bt_init_profile_opp()"); | |
914 | |
915 memset(&bt_opp_s_conf,0,sizeof(bt_opp_s_conf)); | |
916 | |
917 if(service EQ MFW_BT_OPP) | |
918 { | |
919 if(subtype EQ MFW_BT_CLIENT) | |
920 { | |
921 switch(btibtp_init_profile_opp_cl()) | |
922 {/* BTP_INIT_PROFILE_REQ to BT */ | |
923 case BTP_OK: | |
924 return MFW_BT_EXECUTE; | |
925 case BTP_INVALID_PARAMETER: | |
926 return MFW_BT_INVALID_PARA; | |
927 case BTP_NOT_SUPP: | |
928 return MFW_BT_NO_SUPP; | |
929 case BTP_NOT_READY: | |
930 return MFW_BT_NOT_READY; | |
931 case BTP_INT_ERR: | |
932 return MFW_BT_INT_ERR; | |
933 case BTP_MEMORY_ERR: | |
934 return MFW_BT_MEM_ERR; | |
935 case BTP_NOK: | |
936 return MFW_BT_NOK; | |
937 } | |
938 } | |
939 else if(subtype EQ MFW_BT_SERVER) | |
940 { | |
941 /* mode of OPP server: | |
942 MFW_BT_OPP_NO_MODE: no OPP server mode | |
943 MFW_BT_OPP_SILENT_MODE: OPP server stores objects as files without alerting the user | |
944 MFW_BT_OPP_FILE_MODE: OPP server stores objects as files with alerting user | |
945 MFW_BT_OPP_BUFFER_MODE: OPP server asks for a buffer to store the each object | |
946 */ | |
947 | |
948 switch(serv_config.mfw_opp_mode) | |
949 { | |
950 case MFW_BT_OPP_NO_MODE: | |
951 bt_opp_s_conf.bt_opp_mode = BTI_NO_OPP_MODE; | |
952 break; | |
953 case MFW_BT_OPP_BUFFER_MODE: | |
954 bt_opp_s_conf.bt_opp_mode = BTI_OPP_EVENT_BUFFER_MODE; | |
955 break; | |
956 case MFW_BT_OPP_FILE_MODE: | |
957 bt_opp_s_conf.bt_opp_mode = BTI_OPP_EVENT_FILE_MODE; | |
958 break; | |
959 case MFW_BT_OPP_SILENT_MODE: | |
960 bt_opp_s_conf.bt_opp_mode = BTI_OPP_SILENT_FILE_MODE; | |
961 break; | |
962 default: | |
963 return MFW_BT_FAIL; | |
964 } | |
965 /* this function change the parameter of the existing OPP server */ | |
966 /* initalizing of an OBEX server and service, registration in SDP and enabling of OPP server took place | |
967 after switching power on */ | |
968 switch(serv_config.mfw_opp_object.mfw_object_type) | |
969 { | |
970 case MFW_BT_BUFFER:/* object is stored in buffer */ | |
971 bt_opp_s_conf.bt_object.bt_object_type = BTI_TYPE_BUFFER; | |
972 bt_opp_s_conf.bt_object.bt_buffer_start = serv_config.mfw_opp_object.mfw_buffer_start; | |
973 bt_opp_s_conf.bt_object.bt_buffer_size = serv_config.mfw_opp_object.mfw_buffer_size; | |
974 break; | |
975 case MFW_BT_PATH:/* object is stored in file system */ | |
976 bt_opp_s_conf.bt_object.bt_object_type = BTI_TYPE_PATH; | |
977 /* path of default_business_card of server */ | |
978 bt_opp_s_conf.bt_object.bt_path = serv_config.mfw_opp_object.mfw_path; | |
979 /* path of inbox folder in file system of OPP server */ | |
980 bt_opp_s_conf.bt_inbox_path = serv_config.mfw_inbox_path; | |
981 break; | |
982 default: | |
983 return MFW_BT_FAIL; | |
984 | |
985 } | |
986 /* MIME type of object, null-terminated string */ | |
987 bt_opp_s_conf.bt_object.bt_object_mime_type = serv_config.mfw_opp_object.mfw_object_mime_type; | |
988 /* name of default_business_card of server */ | |
989 bt_opp_s_conf.bt_object.bt_object_name = serv_config.mfw_opp_object.mfw_object_name; | |
990 /* length of default_business_card of server */ | |
991 bt_opp_s_conf.bt_object.bt_object_length = serv_config.mfw_opp_object.mfw_object_length; | |
992 | |
993 switch(btibtp_init_profile_opp_s(bt_opp_s_conf)) | |
994 {/* BTP_INIT_PROFILE_REQ to BT */ | |
995 case BTP_OK: | |
996 return MFW_BT_EXECUTE; | |
997 case BTP_INVALID_PARAMETER: | |
998 return MFW_BT_INVALID_PARA; | |
999 case BTP_NOT_SUPP: | |
1000 return MFW_BT_NO_SUPP; | |
1001 case BTP_NOT_READY: | |
1002 return MFW_BT_NOT_READY; | |
1003 case BTP_INT_ERR: | |
1004 return MFW_BT_INT_ERR; | |
1005 case BTP_MEMORY_ERR: | |
1006 return MFW_BT_MEM_ERR; | |
1007 case BTP_NOK: | |
1008 return MFW_BT_NOK; | |
1009 } | |
1010 } | |
1011 else | |
1012 return MFW_BT_FAIL; | |
1013 } | |
1014 return MFW_BT_FAIL; | |
1015 } | |
1016 | |
1017 /* | |
1018 +----------------------------------------------------------------------+ | |
1019 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1020 | STATE : code ROUTINE : bt_init_profile_syn_s | | |
1021 +----------------------------------------------------------------------+ | |
1022 | |
1023 PURPOSE : configure and initialize a BT SYNC profile in server mode | |
1024 | |
1025 */ | |
1026 T_MFW_BT_RESULT_BT bt_init_profile_syn_s (T_MFW_BT_SERVICE_TYPE service, | |
1027 T_MFW_BT_SUBTYPE_DEV subtype, | |
1028 T_MFW_BT_SYN_OBJECT_STORE_LIST list_availabe_objects, | |
1029 T_MFW_BT_SYNC_SERVER_CONFIG mfw_config) | |
1030 { | |
1031 T_BTI_SYNC_SERVER_CONFIG bt_config; | |
1032 T_BTI_SYN_OBJECT_STORE_LIST bt_list_sync_objects; | |
1033 TRACE_FUNCTION ("bt_init_profile_syn_s()"); | |
1034 | |
1035 memset(&bt_config,0,sizeof(bt_config)); | |
1036 bt_list_sync_objects = (T_BTI_SYN_OBJECT_STORE_LIST)list_availabe_objects; | |
1037 | |
1038 if(service EQ MFW_BT_SYNC) | |
1039 { | |
1040 if(subtype EQ MFW_BT_SERVER) | |
1041 { | |
1042 switch(mfw_config.mfw_syn_srv_mode) | |
1043 { | |
1044 case MFW_BT_SYNC_GEN_MODE: | |
1045 /* general SYNC server mode, for devices | |
1046 which are made discoverable continuously or for no | |
1047 specific conditions, the server is in connectable mode; the Sync | |
1048 client connects the server and starts the synchronization */ | |
1049 bt_config.bt_sync_srv_mode = mfw_config.mfw_syn_srv_mode; | |
1050 break; | |
1051 case MFW_BT_SYNC_INIT_MODE: | |
1052 /* limited inquiry scan for devices which | |
1053 are made discoverable only for a limited period of time or | |
1054 for specific conditions; the server is in connectable and pairable mode */ | |
1055 bt_config.bt_sync_srv_mode = mfw_config.mfw_syn_srv_mode; | |
1056 break; | |
1057 default: | |
1058 return MFW_BT_FAIL; | |
1059 } | |
1060 switch(mfw_config.mfw_syn_srv_auth_mode) | |
1061 { | |
1062 case MFW_BT_SYNC_INIT_AUTH_MODE: | |
1063 /* server initiates authentication */ | |
1064 bt_config.bt_sync_aut_mode = mfw_config.mfw_syn_srv_auth_mode; | |
1065 break; | |
1066 case MFW_BT_SYNC_NO_INIT_AUTH_MODE: | |
1067 /* server does not initiate authentication*/ | |
1068 bt_config.bt_sync_aut_mode = mfw_config.mfw_syn_srv_auth_mode; | |
1069 break; | |
1070 default: | |
1071 return MFW_BT_FAIL; | |
1072 } | |
1073 | |
1074 switch(btibtp_init_profile_sync_req_serv(bt_list_sync_objects,bt_config)) | |
1075 { /* BTP_INIT_PROFILE_REQ to BT */ | |
1076 case BTP_OK: | |
1077 return MFW_BT_EXECUTE; | |
1078 case BTP_INVALID_PARAMETER: | |
1079 return MFW_BT_INVALID_PARA; | |
1080 case BTP_NOT_SUPP: | |
1081 return MFW_BT_NO_SUPP; | |
1082 case BTP_NOT_READY: | |
1083 return MFW_BT_NOT_READY; | |
1084 case BTP_INT_ERR: | |
1085 return MFW_BT_INT_ERR; | |
1086 case BTP_MEMORY_ERR: | |
1087 return MFW_BT_MEM_ERR; | |
1088 case BTP_NOK: | |
1089 return MFW_BT_NOK; | |
1090 } | |
1091 } | |
1092 else | |
1093 return MFW_BT_FAIL; | |
1094 } | |
1095 return MFW_BT_FAIL; | |
1096 } | |
1097 /* | |
1098 +--------------------------------------------------------------------+ | |
1099 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1100 | STATE : code ROUTINE : bt_reconf_profile_opp| | |
1101 +--------------------------------------------------------------------+ | |
1102 | |
1103 PURPOSE : reconfigure a BT OPP in server mode | |
1104 */ | |
1105 T_MFW_BT_RESULT_BT bt_reconf_profile_opp (T_MFW_BT_SERVICE_TYPE service, | |
1106 T_MFW_BT_SUBTYPE_DEV subtype, | |
1107 T_MFW_BT_OPP_SERVER_CONFIG serv_config) | |
1108 { | |
1109 T_BTI_OPP_SERVER_CONFIG bt_opp_s_conf; | |
1110 | |
1111 TRACE_FUNCTION ("bt_init_profile_opp()"); | |
1112 | |
1113 memset(&bt_opp_s_conf,0,sizeof(bt_opp_s_conf)); | |
1114 if(service EQ MFW_BT_OPP) | |
1115 { | |
1116 if(subtype EQ MFW_BT_SERVER) | |
1117 { | |
1118 /* mode of OPP server: | |
1119 MFW_BT_OPP_NO_MODE: no OPP server mode | |
1120 MFW_BT_OPP_SILENT_MODE: OPP server stores objects as fileswithout alerting the user | |
1121 MFW_BT_OPP_FILE_MODE: OPP server stores objects as fileswith alerting user | |
1122 MFW_BT_OPP_BUFFER_MODE: OPP server asks for a buffer to store the each object | |
1123 */ | |
1124 switch(serv_config.mfw_opp_mode) | |
1125 { | |
1126 case MFW_BT_OPP_NO_MODE: | |
1127 bt_opp_s_conf.bt_opp_mode = BTI_NO_OPP_MODE; | |
1128 break; | |
1129 case MFW_BT_OPP_BUFFER_MODE: | |
1130 bt_opp_s_conf.bt_opp_mode = BTI_OPP_EVENT_BUFFER_MODE; | |
1131 break; | |
1132 case MFW_BT_OPP_FILE_MODE: | |
1133 bt_opp_s_conf.bt_opp_mode = BTI_OPP_EVENT_FILE_MODE; | |
1134 break; | |
1135 case MFW_BT_OPP_SILENT_MODE: | |
1136 bt_opp_s_conf.bt_opp_mode = BTI_OPP_SILENT_FILE_MODE; | |
1137 break; | |
1138 default: | |
1139 return MFW_BT_FAIL; | |
1140 } | |
1141 /* this function change the parameter of the existing OPP server */ | |
1142 switch(serv_config.mfw_opp_object.mfw_object_type) | |
1143 { | |
1144 case MFW_BT_BUFFER:/* object is stored in buffer */ | |
1145 bt_opp_s_conf.bt_object.bt_object_type = BTI_TYPE_BUFFER; | |
1146 bt_opp_s_conf.bt_object.bt_buffer_start = serv_config.mfw_opp_object.mfw_buffer_start; | |
1147 bt_opp_s_conf.bt_object.bt_buffer_size = serv_config.mfw_opp_object.mfw_buffer_size; | |
1148 break; | |
1149 case MFW_BT_PATH:/* object is stored in file system */ | |
1150 bt_opp_s_conf.bt_object.bt_object_type = BTI_TYPE_PATH; | |
1151 /* path of default_business_card of server */ | |
1152 bt_opp_s_conf.bt_object.bt_path = serv_config.mfw_opp_object.mfw_path; | |
1153 /* path of inbox folder in file system of OPP server */ | |
1154 bt_opp_s_conf.bt_inbox_path = serv_config.mfw_inbox_path; | |
1155 break; | |
1156 default: | |
1157 return MFW_BT_FAIL; | |
1158 } | |
1159 /* MIME type of object, null-terminated string */ | |
1160 bt_opp_s_conf.bt_object.bt_object_mime_type = serv_config.mfw_opp_object.mfw_object_mime_type; | |
1161 /* name of default_business_card of server */ | |
1162 bt_opp_s_conf.bt_object.bt_object_name = serv_config.mfw_opp_object.mfw_object_name; | |
1163 /* length of default_business_card of server */ | |
1164 bt_opp_s_conf.bt_object.bt_object_length = serv_config.mfw_opp_object.mfw_object_length; | |
1165 | |
1166 switch(btibtp_reconf_profile_opp_s(bt_opp_s_conf)) | |
1167 {/* BTP_RECONFIG_PROFILE_REQ to BT */ | |
1168 case BTP_OK: | |
1169 return MFW_BT_EXECUTE; | |
1170 case BTP_INVALID_PARAMETER: | |
1171 return MFW_BT_INVALID_PARA; | |
1172 case BTP_NOT_SUPP: | |
1173 return MFW_BT_NO_SUPP; | |
1174 case BTP_NOT_READY: | |
1175 return MFW_BT_NOT_READY; | |
1176 case BTP_INT_ERR: | |
1177 return MFW_BT_INT_ERR; | |
1178 case BTP_MEMORY_ERR: | |
1179 return MFW_BT_MEM_ERR; | |
1180 case BTP_NOK: | |
1181 return MFW_BT_NOK; | |
1182 } | |
1183 } | |
1184 else | |
1185 return MFW_BT_FAIL; | |
1186 } | |
1187 return MFW_BT_FAIL; | |
1188 } | |
1189 | |
1190 /* | |
1191 +----------------------------------------------------------------------+ | |
1192 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1193 | STATE : code ROUTINE : bt_reconf_profile_syn_s | | |
1194 +----------------------------------------------------------------------+ | |
1195 | |
1196 PURPOSE : reconfigure a BT SYNC profile in server mode | |
1197 | |
1198 */ | |
1199 T_MFW_BT_RESULT_BT bt_reconf_profile_syn_s (T_MFW_BT_SERVICE_TYPE service, | |
1200 T_MFW_BT_SUBTYPE_DEV subtype, | |
1201 T_MFW_BT_SYN_OBJECT_STORE_LIST list_availabe_objects, | |
1202 T_MFW_BT_SYNC_SERVER_CONFIG mfw_config) | |
1203 { | |
1204 T_BTI_SYNC_SERVER_CONFIG bt_config; | |
1205 T_BTI_SYN_OBJECT_STORE_LIST bt_list_sync_objects; | |
1206 TRACE_FUNCTION ("bt_reconf_profile_syn_s()"); | |
1207 | |
1208 memset(&bt_config,0,sizeof(bt_config)); | |
1209 bt_list_sync_objects = (T_BTI_SYN_OBJECT_STORE_LIST)list_availabe_objects; | |
1210 | |
1211 if(service EQ MFW_BT_SYNC) | |
1212 { | |
1213 switch(mfw_config.mfw_syn_srv_mode) | |
1214 { | |
1215 case MFW_BT_SYNC_GEN_MODE: | |
1216 /* general SYNC server mode, for devices | |
1217 which are made discoverable continuously or for no | |
1218 specific conditions */ | |
1219 bt_config.bt_sync_srv_mode = mfw_config.mfw_syn_srv_mode; | |
1220 break; | |
1221 case MFW_BT_SYNC_INIT_MODE: | |
1222 /* limited inquiry scan for devices which | |
1223 are made discoverable only for a limited period of time or | |
1224 for specific conditions */ | |
1225 bt_config.bt_sync_srv_mode = mfw_config.mfw_syn_srv_mode; | |
1226 break; | |
1227 default: | |
1228 return MFW_BT_FAIL; | |
1229 } | |
1230 switch(mfw_config.mfw_syn_srv_auth_mode) | |
1231 { | |
1232 case MFW_BT_SYNC_INIT_AUTH_MODE: | |
1233 /* server initiates authentication */ | |
1234 bt_config.bt_sync_aut_mode = mfw_config.mfw_syn_srv_auth_mode; | |
1235 break; | |
1236 case MFW_BT_SYNC_NO_INIT_AUTH_MODE: | |
1237 /* server does not initiate authentication*/ | |
1238 bt_config.bt_sync_aut_mode = mfw_config.mfw_syn_srv_auth_mode; | |
1239 break; | |
1240 default: | |
1241 return MFW_BT_FAIL; | |
1242 } | |
1243 | |
1244 switch(btibtp_reconf_profile_sync_req_serv(bt_list_sync_objects,bt_config)) | |
1245 { /* BTP_RECONFIG_PROFILE_REQ to BT */ | |
1246 case BTP_OK: | |
1247 return MFW_BT_EXECUTE; | |
1248 case BTP_INVALID_PARAMETER: | |
1249 return MFW_BT_INVALID_PARA; | |
1250 case BTP_NOT_SUPP: | |
1251 return MFW_BT_NO_SUPP; | |
1252 case BTP_NOT_READY: | |
1253 return MFW_BT_NOT_READY; | |
1254 case BTP_INT_ERR: | |
1255 return MFW_BT_INT_ERR; | |
1256 case BTP_MEMORY_ERR: | |
1257 return MFW_BT_MEM_ERR; | |
1258 case BTP_NOK: | |
1259 return MFW_BT_NOK; | |
1260 } | |
1261 } | |
1262 return MFW_BT_FAIL; | |
1263 } | |
1264 /* | |
1265 +--------------------------------------------------------------------+ | |
1266 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1267 | STATE : code ROUTINE : bt_deinit_profile | | |
1268 +--------------------------------------------------------------------+ | |
1269 | |
1270 PURPOSE : deinitialize a BT profile, not stop of profile application | |
1271 | |
1272 */ | |
1273 T_MFW_BT_RESULT_BT bt_deinit_profile (T_MFW_BT_SERVICE_TYPE service,T_MFW_BT_SUBTYPE_DEV subtype) | |
1274 { | |
1275 TRACE_FUNCTION ("bt_deinit_profile()"); | |
1276 | |
1277 if((service EQ MFW_BT_HEADSET) OR | |
1278 (service EQ MFW_BT_DIAL_UP) OR | |
1279 (service EQ MFW_BT_FAX_GW) OR | |
1280 (service EQ MFW_BT_OPP) OR | |
1281 (service EQ MFW_BT_SYNC)) | |
1282 { | |
1283 if((subtype EQ MFW_BT_CLIENT) OR | |
1284 (subtype EQ MFW_BT_SERVER) OR | |
1285 (subtype EQ MFW_BT_NO_SUBTYPE)) | |
1286 { | |
1287 switch(btibtp_deinit_profile_req((T_BTI_DEVICE_TYPE)service,(T_BTI_DEVICE_SUBTYP)subtype)) | |
1288 { /* BTP_DEINIT_PROFILE_REQ to BT */ | |
1289 case BTP_OK: | |
1290 return MFW_BT_EXECUTE; | |
1291 case BTP_INVALID_PARAMETER: | |
1292 return MFW_BT_INVALID_PARA; | |
1293 case BTP_NOT_SUPP: | |
1294 return MFW_BT_NO_SUPP; | |
1295 case BTP_NOT_READY: | |
1296 return MFW_BT_NOT_READY; | |
1297 case BTP_INT_ERR: | |
1298 return MFW_BT_INT_ERR; | |
1299 case BTP_MEMORY_ERR: | |
1300 return MFW_BT_MEM_ERR; | |
1301 case BTP_NOK: | |
1302 return MFW_BT_NOK; | |
1303 } | |
1304 } | |
1305 } | |
1306 return MFW_BT_FAIL; | |
1307 } | |
1308 | |
1309 /* | |
1310 +-----------------------------------------------------------------------+ | |
1311 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1312 | STATE : code ROUTINE : bt_reconfig_profile_hsg_cl| | |
1313 +-----------------------------------------------------------------------+ | |
1314 | |
1315 PURPOSE : reconfigure a BT profile headset in client mode | |
1316 | |
1317 */ | |
1318 T_MFW_BT_RESULT_BT bt_reconfig_profile_hsg_cl (T_MFW_BT_SERVICE_TYPE service, | |
1319 T_MFW_BT_HSG_CLIENT_CONFIG config) | |
1320 { | |
1321 T_BTI_HSG_CLIENT_CONF bt_config; | |
1322 | |
1323 TRACE_FUNCTION ("bt_reconfig_profile_hsg_cl()"); | |
1324 | |
1325 memset(&bt_config,0,sizeof(bt_config)); | |
1326 | |
1327 if(service EQ MFW_BT_HEADSET) | |
1328 {/* reconfiguration is only accepted when no outgoing call is in processing */ | |
1329 switch(config.config_mode) | |
1330 { | |
1331 case MFW_BT_AUTO_OUTG_DEF_CONN_OFF: | |
1332 bt_config.config_mode = BTI_AUTO_OUTG_DEF_CONN_OFF; | |
1333 break; | |
1334 case MFW_BT_AUTO_OUTG_DEF_CONN_ON: | |
1335 bt_config.config_mode = BTI_AUTO_OUTG_DEF_CONN_ON; | |
1336 break; | |
1337 } | |
1338 | |
1339 bt_config.security = config.security; | |
1340 | |
1341 switch(btibtp_reconfig_profile_req_cl((T_BTI_DEVICE_TYPE)service,bt_config)) | |
1342 { /* BTP_RECONF_PROFILE_REQ to BT */ | |
1343 case BTP_OK: | |
1344 return MFW_BT_EXECUTE; | |
1345 case BTP_INVALID_PARAMETER: | |
1346 return MFW_BT_INVALID_PARA; | |
1347 case BTP_NOT_SUPP: | |
1348 return MFW_BT_NO_SUPP; | |
1349 case BTP_NOT_READY: | |
1350 return MFW_BT_NOT_READY; | |
1351 case BTP_INT_ERR: | |
1352 return MFW_BT_INT_ERR; | |
1353 case BTP_MEMORY_ERR: | |
1354 return MFW_BT_MEM_ERR; | |
1355 case BTP_NOK: | |
1356 return MFW_BT_NOK; | |
1357 } | |
1358 } | |
1359 return MFW_BT_FAIL; | |
1360 } | |
1361 | |
1362 /* | |
1363 +--------------------------------------------------------------------------+ | |
1364 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1365 | STATE : code ROUTINE : bt_reconfig_profile_hsg_serv| | |
1366 +--------------------------------------------------------------------------+ | |
1367 | |
1368 PURPOSE : reconfigure a BT headset profile in server mode | |
1369 | |
1370 */ | |
1371 T_MFW_BT_RESULT_BT bt_reconfig_profile_hsg_serv (T_MFW_BT_SERVICE_TYPE service, | |
1372 T_MFW_BT_HSG_SERVER_CONFIG mfw_config) | |
1373 { | |
1374 T_BTI_HSG_SERVER_CONF bt_config; | |
1375 | |
1376 TRACE_FUNCTION ("bt_reconfig_profile_hsg_serv()"); | |
1377 | |
1378 memset(&bt_config,0,sizeof(bt_config)); | |
1379 | |
1380 if(service EQ MFW_BT_HEADSET) | |
1381 { | |
1382 bt_config.conn_config = mfw_config.serv_con_conf; | |
1383 /* length scan of connection requests of remote headsets * | |
1384 /* default value: MFW_BT_CONN_SCAN_TIME_DEFAULT_VALUE */ | |
1385 bt_config.conn_time = mfw_config.conn_time; | |
1386 /* period between 2 scans of connection of remote headsets */ | |
1387 /* default value: MFW_BT_CONN_SCAN_BREAK_DEFAULT_VALUE */ | |
1388 bt_config.conn_break= mfw_config.conn_break; | |
1389 /* number of phone number in phone list */ | |
1390 bt_config.nb_phone = mfw_config.nb_phone; | |
1391 /* phone number list of remote headset */ | |
1392 memcpy(bt_config.phon_list,mfw_config.mfw_phone_list,sizeof(mfw_config.mfw_phone_list)); | |
1393 /* associatd key list of remote headset */ | |
1394 memcpy(bt_config.key_list,mfw_config.mfw_key_list,sizeof(mfw_config.mfw_key_list)); | |
1395 | |
1396 bt_config.security = mfw_config.security; | |
1397 | |
1398 switch(btibtp_reconfig_profile_req_serv((T_BTI_DEVICE_TYPE)service,bt_config)) | |
1399 {/* BTP_INIT_PROFILE_REQ to BT */ | |
1400 case BTP_OK: | |
1401 return MFW_BT_EXECUTE; | |
1402 case BTP_INVALID_PARAMETER: | |
1403 return MFW_BT_INVALID_PARA; | |
1404 case BTP_NOT_SUPP: | |
1405 return MFW_BT_NO_SUPP; | |
1406 case BTP_NOT_READY: | |
1407 return MFW_BT_NOT_READY; | |
1408 case BTP_INT_ERR: | |
1409 return MFW_BT_INT_ERR; | |
1410 case BTP_MEMORY_ERR: | |
1411 return MFW_BT_MEM_ERR; | |
1412 case BTP_NOK: | |
1413 return MFW_BT_NOK; | |
1414 } | |
1415 } | |
1416 return MFW_BT_FAIL; | |
1417 } | |
1418 /* | |
1419 +--------------------------------------------------------------------+ | |
1420 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1421 | STATE : code ROUTINE : bt_reconfig_profile_dun| | |
1422 +--------------------------------------------------------------------+ | |
1423 | |
1424 PURPOSE : reconfigure a BT profile | |
1425 | |
1426 */ | |
1427 T_MFW_BT_RESULT_BT bt_reconfig_profile_dun (T_MFW_BT_SERVICE_TYPE service, | |
1428 T_MFW_BT_DUN_CONFIG dun_filter) | |
1429 { | |
1430 T_BTI_DUN_CONF dun_config; | |
1431 | |
1432 TRACE_FUNCTION ("bt_reconfig_profile_dun()"); | |
1433 | |
1434 memset(&dun_config,0,sizeof(dun_config)); | |
1435 | |
1436 if(service EQ MFW_BT_DIAL_UP ) | |
1437 {/* show status of BT link - informs if a serial port is opened between DUN-DT and DUN-GW */ | |
1438 if((dun_filter.link_event EQ BTI_DUN_LINK_MONIT_ON) OR | |
1439 (dun_filter.link_event EQ BTI_DUN_LINK_MONIT_OFF)) | |
1440 { | |
1441 dun_config.link_filter = dun_filter.link_event; | |
1442 } | |
1443 else | |
1444 { | |
1445 TRACE_EVENT ("Error:bt_reconfig_profile_dun()"); | |
1446 return MFW_BT_FAIL; | |
1447 } | |
1448 /* show status of data call */ | |
1449 if((dun_filter.call_event EQ BTI_DUN_CALL_MONIT_ON) OR | |
1450 (dun_filter.call_event EQ BTI_DUN_CALL_MONIT_OFF)) | |
1451 { | |
1452 dun_config.call_filter = dun_filter.call_event; | |
1453 } | |
1454 else | |
1455 { | |
1456 TRACE_EVENT ("Error:bt_reconfig_profile_dun()"); | |
1457 return MFW_BT_FAIL; | |
1458 } | |
1459 | |
1460 switch(btibtp_reconf_profile_dun_req((T_BTI_DEVICE_TYPE)service,dun_config)) | |
1461 { /* BTP_RECONF_PROFILE_REQ to BT */ | |
1462 case BTP_OK: | |
1463 return MFW_BT_EXECUTE; | |
1464 case BTP_INVALID_PARAMETER: | |
1465 return MFW_BT_INVALID_PARA; | |
1466 case BTP_NOT_SUPP: | |
1467 return MFW_BT_NO_SUPP; | |
1468 case BTP_NOT_READY: | |
1469 return MFW_BT_NOT_READY; | |
1470 case BTP_INT_ERR: | |
1471 return MFW_BT_INT_ERR; | |
1472 case BTP_MEMORY_ERR: | |
1473 return MFW_BT_MEM_ERR; | |
1474 case BTP_NOK: | |
1475 return MFW_BT_NOK; | |
1476 } | |
1477 } | |
1478 return MFW_BT_FAIL; | |
1479 } | |
1480 | |
1481 /* | |
1482 +--------------------------------------------------------------------+ | |
1483 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1484 | STATE : code ROUTINE : bt_reconfig_profile_fax| | |
1485 +--------------------------------------------------------------------+ | |
1486 | |
1487 PURPOSE : reconfigure a BT profile | |
1488 | |
1489 */ | |
1490 T_MFW_BT_RESULT_BT bt_reconfig_profile_fax (T_MFW_BT_SERVICE_TYPE service, | |
1491 T_MFW_BT_FAX_CONFIG fax_filter) | |
1492 { | |
1493 T_BTI_FAX_CONF fax_config; | |
1494 | |
1495 TRACE_FUNCTION ("bt_reconfig_profile_fax()"); | |
1496 | |
1497 memset(&fax_config,0,sizeof(fax_config)); | |
1498 | |
1499 if(service EQ MFW_BT_FAX_GW ) | |
1500 {/* show status of BT link - informs if a serial port is opened between FAX-DT and FAX-GW */ | |
1501 if((fax_filter.link_event EQ BTI_FAX_LINK_MONIT_ON) OR | |
1502 (fax_filter.link_event EQ BTI_FAX_LINK_MONIT_OFF)) | |
1503 { | |
1504 fax_config.link_filter = fax_filter.link_event; | |
1505 } | |
1506 else | |
1507 { | |
1508 TRACE_EVENT ("Error:bt_reconfig_profile_fax()"); | |
1509 return MFW_BT_FAIL; | |
1510 } | |
1511 /* show status of data call */ | |
1512 if((fax_filter.call_event EQ BTI_FAX_CALL_MONIT_ON) OR | |
1513 (fax_filter.call_event EQ BTI_FAX_CALL_MONIT_OFF)) | |
1514 { | |
1515 fax_config.call_filter = fax_filter.call_event; | |
1516 } | |
1517 else | |
1518 { | |
1519 TRACE_EVENT ("Error:bt_reconfig_profile_fax()"); | |
1520 return MFW_BT_FAIL; | |
1521 } | |
1522 | |
1523 switch(btibtp_reconf_profile_fax_req((T_BTI_DEVICE_TYPE)service,fax_config)) | |
1524 { /* BTP_RECONF_PROFILE_REQ to BT */ | |
1525 case BTP_OK: | |
1526 return MFW_BT_EXECUTE; | |
1527 case BTP_INVALID_PARAMETER: | |
1528 return MFW_BT_INVALID_PARA; | |
1529 case BTP_NOT_SUPP: | |
1530 return MFW_BT_NO_SUPP; | |
1531 case BTP_NOT_READY: | |
1532 return MFW_BT_NOT_READY; | |
1533 case BTP_INT_ERR: | |
1534 return MFW_BT_INT_ERR; | |
1535 case BTP_MEMORY_ERR: | |
1536 return MFW_BT_MEM_ERR; | |
1537 case BTP_NOK: | |
1538 return MFW_BT_NOK; | |
1539 } | |
1540 } | |
1541 return MFW_BT_FAIL; | |
1542 } | |
1543 /* | |
1544 +--------------------------------------------------------------------+ | |
1545 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1546 | STATE : code ROUTINE : bt_service_search| | |
1547 +--------------------------------------------------------------------+ | |
1548 | |
1549 PURPOSE : request search of services and their service names | |
1550 | |
1551 */ | |
1552 T_MFW_BT_RESULT_BT bt_service_search(T_MFW_BT_SERVICE_TYPE service) | |
1553 { | |
1554 TRACE_FUNCTION ("bt_service_search()"); | |
1555 | |
1556 if((service EQ MFW_BT_HEADSET) OR | |
1557 (service EQ MFW_BT_DIAL_UP) OR | |
1558 (service EQ MFW_BT_FAX_GW) OR | |
1559 (service EQ MFW_BT_OPP) OR | |
1560 (service EQ MFW_BT_SYNC_CMD)) | |
1561 {/* start browsing procedure */ | |
1562 switch(btibtp_service_search_req((T_BTI_DEVICE_TYPE)service, SERVICE_SEARCH)) | |
1563 { | |
1564 case BTP_OK: | |
1565 return MFW_BT_EXECUTE; | |
1566 case BTP_INVALID_PARAMETER: | |
1567 return MFW_BT_INVALID_PARA; | |
1568 case BTP_NOT_SUPP: | |
1569 return MFW_BT_NO_SUPP; | |
1570 case BTP_NOT_READY: | |
1571 return MFW_BT_NOT_READY; | |
1572 case BTP_INT_ERR: | |
1573 return MFW_BT_INT_ERR; | |
1574 case BTP_MEMORY_ERR: | |
1575 return MFW_BT_MEM_ERR; | |
1576 case BTP_NOK: | |
1577 return MFW_BT_NOK; | |
1578 } | |
1579 } | |
1580 return MFW_BT_FAIL; | |
1581 } | |
1582 | |
1583 /* | |
1584 +--------------------------------------------------------------------+ | |
1585 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1586 | STATE : code ROUTINE : bt_device_search | | |
1587 +--------------------------------------------------------------------+ | |
1588 | |
1589 PURPOSE : request search of devices and their service id's | |
1590 | |
1591 */ | |
1592 T_MFW_BT_RESULT_BT bt_device_search(void) | |
1593 { | |
1594 | |
1595 TRACE_FUNCTION ("bt_device_search()"); | |
1596 | |
1597 /* start browsing procedure */ | |
1598 switch(btibtp_device_search_req(DEVICE_SEARCH)) | |
1599 { | |
1600 case BTP_OK: | |
1601 return MFW_BT_EXECUTE; | |
1602 case BTP_INVALID_PARAMETER: | |
1603 return MFW_BT_INVALID_PARA; | |
1604 case BTP_NOT_SUPP: | |
1605 return MFW_BT_NO_SUPP; | |
1606 case BTP_NOT_READY: | |
1607 return MFW_BT_NOT_READY; | |
1608 case BTP_INT_ERR: | |
1609 return MFW_BT_INT_ERR; | |
1610 case BTP_MEMORY_ERR: | |
1611 return MFW_BT_MEM_ERR; | |
1612 case BTP_NOK: | |
1613 return MFW_BT_NOK; | |
1614 } | |
1615 } | |
1616 | |
1617 /* | |
1618 +--------------------------------------------------------------------+ | |
1619 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1620 | STATE : code ROUTINE : bt_extended_search | | |
1621 +--------------------------------------------------------------------+ | |
1622 | |
1623 PURPOSE : request search of devices and their service id's | |
1624 | |
1625 */ | |
1626 T_MFW_BT_RESULT_BT bt_extended_search(UINT8 inq_length, | |
1627 UINT8 max_num_of_responses, | |
1628 T_MFW_DEVICE_CLASS class_of_device[], | |
1629 BOOLEAN need_device_name, | |
1630 BOOLEAN need_services, | |
1631 T_MFW_SERVICE_ID service_id) | |
1632 { | |
1633 | |
1634 TRACE_FUNCTION ("bt_extended_search()"); | |
1635 | |
1636 /* start browsing procedure */ | |
1637 switch(btibtp_extended_search_req(inq_length, max_num_of_responses, | |
1638 class_of_device, need_device_name, | |
1639 need_services, service_id)) | |
1640 { | |
1641 case BTP_OK: | |
1642 return MFW_BT_EXECUTE; | |
1643 case BTP_INVALID_PARAMETER: | |
1644 return MFW_BT_INVALID_PARA; | |
1645 case BTP_NOT_SUPP: | |
1646 return MFW_BT_NO_SUPP; | |
1647 case BTP_NOT_READY: | |
1648 return MFW_BT_NOT_READY; | |
1649 case BTP_INT_ERR: | |
1650 return MFW_BT_INT_ERR; | |
1651 case BTP_MEMORY_ERR: | |
1652 return MFW_BT_MEM_ERR; | |
1653 case BTP_NOK: | |
1654 return MFW_BT_NOK; | |
1655 } | |
1656 } | |
1657 | |
1658 /* | |
1659 +--------------------------------------------------------------------+ | |
1660 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1661 | STATE : code ROUTINE : bt_search_abort | | |
1662 +--------------------------------------------------------------------+ | |
1663 | |
1664 PURPOSE : start abort of browsing procedure | |
1665 | |
1666 */ | |
1667 T_MFW_BT_RESULT_BT bt_search_abort(void) | |
1668 { | |
1669 TRACE_FUNCTION ("bt_search_abort()"); | |
1670 | |
1671 switch(btibtp_search_abort()) | |
1672 { | |
1673 case BTP_OK: | |
1674 return MFW_BT_OK; | |
1675 case BTP_INVALID_PARAMETER: | |
1676 return MFW_BT_INVALID_PARA; | |
1677 case BTP_NOT_SUPP: | |
1678 return MFW_BT_NO_SUPP; | |
1679 case BTP_NOT_READY: | |
1680 return MFW_BT_NOT_READY; | |
1681 case BTP_INT_ERR: | |
1682 return MFW_BT_INT_ERR; | |
1683 case BTP_MEMORY_ERR: | |
1684 return MFW_BT_MEM_ERR; | |
1685 case BTP_NOK: | |
1686 return MFW_BT_NOK; | |
1687 } | |
1688 } | |
1689 /* | |
1690 +--------------------------------------------------------------------+ | |
1691 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1692 | STATE : code ROUTINE : bt_connect_hsg | | |
1693 +--------------------------------------------------------------------+ | |
1694 | |
1695 PURPOSE : request connection with the service headset | |
1696 | |
1697 */ | |
1698 T_MFW_BT_RESULT_BT bt_connect_hsg (T_MFW_BT_SERVICE_TYPE service, | |
1699 T_MFW_BT_REQ_ID req_id, | |
1700 T_MFW_BT_BD_ADDR bd_addr[], UINT8 mode) | |
1701 { | |
1702 TRACE_FUNCTION ("bt_connect_hsg()"); | |
1703 | |
1704 /* | |
1705 *** if req_id equal MFW_BT_DEFAULT_HEADSET_ID: headset gateway will | |
1706 automatically select a headset from the default headset list | |
1707 if req_id equal MFW_BT_INVALID_HEADSET_ID: headset gateway will try to | |
1708 connect to the headset whose BT headset address is in bd_addr | |
1709 otherwise headset gateway will call the headset related to headset_id | |
1710 in the default headset list | |
1711 *** | |
1712 */ | |
1713 /* BTP_CONNECT_DEVICE_REQ to BT */ | |
1714 if(service EQ MFW_BT_HEADSET) | |
1715 { | |
1716 switch(btibtp_connect_hsg_req(req_id, bd_addr, mode)) | |
1717 { | |
1718 case BTP_OK: | |
1719 return MFW_BT_EXECUTE; | |
1720 case BTP_INVALID_PARAMETER: | |
1721 return MFW_BT_INVALID_PARA; | |
1722 case BTP_NOT_SUPP: | |
1723 return MFW_BT_NO_SUPP; | |
1724 case BTP_NOT_READY: | |
1725 return MFW_BT_NOT_READY; | |
1726 case BTP_INT_ERR: | |
1727 return MFW_BT_INT_ERR; | |
1728 case BTP_MEMORY_ERR: | |
1729 return MFW_BT_MEM_ERR; | |
1730 case BTP_NOK: | |
1731 return MFW_BT_NOK; | |
1732 } | |
1733 } | |
1734 else | |
1735 return MFW_BT_FAIL; | |
1736 } | |
1737 | |
1738 /* | |
1739 +--------------------------------------------------------------------+ | |
1740 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1741 | STATE : code ROUTINE :bt_get_auto_connect| | |
1742 +--------------------------------------------------------------------+ | |
1743 | |
1744 PURPOSE : get state automatic connection on/off for headset gateway | |
1745 */ | |
1746 | |
1747 T_MFW_BT_RESULT_BT bt_get_auto_connect(T_MFW_BT_SERVICE_TYPE service, | |
1748 T_MFW_BT_HSG_CLIENT_CONFIG *conf) | |
1749 { | |
1750 T_MFW_BT_HSG_CLIENT_CONFIG client_conf; | |
1751 T_MFW_BT_HSG_SERVER_CONFIG server_conf; | |
1752 T_MFW_BT_RESULT_BT result; | |
1753 | |
1754 TRACE_FUNCTION ("bt_get_auto_connect()"); | |
1755 | |
1756 memset(&client_conf,0,sizeof(client_conf)); | |
1757 memset(&server_conf,0,sizeof(server_conf)); | |
1758 | |
1759 result = bt_get_config((T_BTI_DEVICE_TYPE)service,&client_conf,&server_conf); | |
1760 | |
1761 if(result EQ MFW_BT_OK) | |
1762 { | |
1763 conf->config_mode = (T_MFW_BT_CONFIG_MODE)client_conf.config_mode; | |
1764 } | |
1765 return result; | |
1766 } | |
1767 | |
1768 /* | |
1769 +--------------------------------------------------------------------+ | |
1770 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1771 | STATE : code ROUTINE :bt_auto_connect | | |
1772 +--------------------------------------------------------------------+ | |
1773 | |
1774 PURPOSE : set feature automatic connection on/off for headset gateway | |
1775 */ | |
1776 | |
1777 T_MFW_BT_RESULT_BT bt_auto_connect(T_MFW_BT_SERVICE_TYPE service, | |
1778 T_MFW_BT_AUTO_CONNECT_STATE set_state) | |
1779 { | |
1780 T_MFW_BT_HSG_CLIENT_CONFIG client_conf; | |
1781 T_MFW_BT_HSG_SERVER_CONFIG server_conf; | |
1782 T_MFW_BT_RESULT_BT result; | |
1783 | |
1784 TRACE_FUNCTION ("bt_auto_connect()"); | |
1785 | |
1786 memset(&client_conf,0,sizeof(client_conf)); | |
1787 memset(&server_conf,0,sizeof(server_conf)); | |
1788 | |
1789 if(set_state EQ MFW_BT_AUTO_CONNECT_ON OR | |
1790 set_state EQ MFW_BT_AUTO_CONNECT_OFF) | |
1791 {/* read state of config_mode */ | |
1792 result = bt_get_config((T_BTI_DEVICE_TYPE)service,&client_conf,&server_conf); | |
1793 if(result NEQ MFW_BT_OK) | |
1794 { | |
1795 return result; | |
1796 } | |
1797 else | |
1798 { | |
1799 if(set_state EQ MFW_BT_AUTO_CONNECT_ON) | |
1800 { | |
1801 if(client_conf.config_mode NEQ MFW_BT_AUTO_OUTG_DEF_CONN_ON) | |
1802 {/* connection with default pre-defined headset as soon as it receives a | |
1803 RING command from GSM)*/ | |
1804 client_conf.config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_ON; | |
1805 return (bt_reconfig_profile_hsg_cl(service,client_conf)); | |
1806 } | |
1807 } | |
1808 else | |
1809 { | |
1810 if(client_conf.config_mode EQ MFW_BT_AUTO_OUTG_DEF_CONN_ON) | |
1811 { | |
1812 client_conf.config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_OFF; | |
1813 return (bt_reconfig_profile_hsg_cl(service,client_conf)); | |
1814 } | |
1815 } | |
1816 } | |
1817 } | |
1818 else | |
1819 return MFW_BT_FAIL; | |
1820 } | |
1821 /* | |
1822 +--------------------------------------------------------------------+ | |
1823 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1824 | STATE : code ROUTINE :bt_set_pref_headset | | |
1825 +--------------------------------------------------------------------+ | |
1826 | |
1827 PURPOSE : add preferred headset in default headset list | |
1828 */ | |
1829 | |
1830 T_MFW_BT_RESULT_BT bt_set_pref_headset(T_MFW_BT_SERVICE_TYPE service, | |
1831 T_MFW_BT_BD_ADDR bd_addr[], | |
1832 T_MFW_BT_HSG_NAME hsg_name[], | |
1833 T_MFW_BT_PRIORITY priority, | |
1834 BOOL rem_audio_ctr_supp_hsg, | |
1835 T_MFW_BT_CNF_ID * headset_cnf_id) | |
1836 { | |
1837 T_MFW_BT_CNF_ID cnf_id = 0; | |
1838 | |
1839 TRACE_FUNCTION ("bt_set_pref_service()"); | |
1840 | |
1841 if(service EQ MFW_BT_HEADSET) | |
1842 { | |
1843 if(priority <= MFW_HSG_HEADSET_MAX_PRIORITY) | |
1844 { | |
1845 switch(btibtp_set_default_headset(bd_addr,hsg_name,priority,rem_audio_ctr_supp_hsg,&cnf_id)) | |
1846 /* add headset in default headset list */ | |
1847 { | |
1848 case BTP_OK: | |
1849 *headset_cnf_id = cnf_id; | |
1850 return MFW_BT_OK; | |
1851 case BTP_INVALID_PARAMETER: | |
1852 return MFW_BT_INVALID_PARA; | |
1853 case BTP_HSG_ALREADY_STOR: | |
1854 return MFW_BT_HSG_ALREADY_STORED; | |
1855 case BTP_NOT_READY: | |
1856 return MFW_BT_NOT_READY; | |
1857 case BTP_INT_ERR: | |
1858 return MFW_BT_INT_ERR; | |
1859 case BTP_MEMORY_ERR: | |
1860 return MFW_BT_MEM_ERR; | |
1861 case BTP_NOK: | |
1862 return MFW_BT_NOK; | |
1863 } | |
1864 } | |
1865 else | |
1866 return MFW_BT_INVALID_PARA; | |
1867 } | |
1868 else | |
1869 return MFW_BT_FAIL; | |
1870 } | |
1871 | |
1872 /* | |
1873 +--------------------------------------------------------------------+ | |
1874 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1875 | STATE : code ROUTINE :bt_is_pref_headset | | |
1876 +--------------------------------------------------------------------+ | |
1877 | |
1878 PURPOSE : check if preferred headset is in default headset list | |
1879 */ | |
1880 | |
1881 T_MFW_BT_RESULT_BT bt_is_pref_headset(T_MFW_BT_SERVICE_TYPE service, | |
1882 T_MFW_BT_BD_ADDR bd_addr[], | |
1883 T_MFW_BT_CNF_ID * headset_cnf_id) | |
1884 { | |
1885 T_MFW_BT_CNF_ID cnf_id = 0; | |
1886 | |
1887 TRACE_FUNCTION ("bt_is_pref_headset()"); | |
1888 | |
1889 if(service EQ MFW_BT_HEADSET) | |
1890 { | |
1891 switch(btibtp_query_default_headset(bd_addr,&cnf_id)) | |
1892 /* add headset in default headset list */ | |
1893 { | |
1894 case BTP_OK: | |
1895 *headset_cnf_id = cnf_id; | |
1896 return MFW_BT_OK; | |
1897 case BTP_INVALID_PARAMETER: | |
1898 return MFW_BT_INVALID_PARA; | |
1899 case BTP_HSG_ALREADY_STOR: | |
1900 return MFW_BT_HSG_ALREADY_STORED; | |
1901 case BTP_NOT_READY: | |
1902 return MFW_BT_NOT_READY; | |
1903 case BTP_INT_ERR: | |
1904 return MFW_BT_INT_ERR; | |
1905 case BTP_MEMORY_ERR: | |
1906 return MFW_BT_MEM_ERR; | |
1907 case BTP_NOK: | |
1908 return MFW_BT_NOK; | |
1909 } | |
1910 } | |
1911 else | |
1912 return MFW_BT_FAIL; | |
1913 } | |
1914 /* | |
1915 +--------------------------------------------------------------------+ | |
1916 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1917 | STATE : code ROUTINE :bt_reset_pref_hsg | | |
1918 +--------------------------------------------------------------------+ | |
1919 | |
1920 PURPOSE : delete current entry of a preferred headset | |
1921 */ | |
1922 | |
1923 T_MFW_BT_RESULT_BT bt_reset_pref_hsg(T_MFW_BT_SERVICE_TYPE service, | |
1924 T_MFW_BT_DEV_ID dev_id) | |
1925 { | |
1926 TRACE_FUNCTION ("bt_reset_pref_hsg()"); | |
1927 if(service EQ MFW_BT_HEADSET) | |
1928 { | |
1929 /* parameter: dev_id equal headset_id in default headset list */ | |
1930 switch(btibtp_delete_default_headset(dev_id)) | |
1931 { | |
1932 case BTP_OK: | |
1933 return MFW_BT_OK; | |
1934 case BTP_INVALID_PARAMETER: | |
1935 return MFW_BT_INVALID_PARA; | |
1936 case BTP_NOT_SUPP: | |
1937 return MFW_BT_NO_SUPP; | |
1938 case BTP_NOT_READY: | |
1939 return MFW_BT_NOT_READY; | |
1940 case BTP_INT_ERR: | |
1941 return MFW_BT_INT_ERR; | |
1942 case BTP_MEMORY_ERR: | |
1943 return MFW_BT_MEM_ERR; | |
1944 case BTP_NOK: | |
1945 return MFW_BT_NOK; | |
1946 } | |
1947 } | |
1948 else | |
1949 return MFW_BT_FAIL; | |
1950 } | |
1951 /* | |
1952 +--------------------------------------------------------------------+ | |
1953 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1954 | STATE : code ROUTINE :bt_disconnect_service| | |
1955 +--------------------------------------------------------------------+ | |
1956 | |
1957 PURPOSE : request disconnect of service | |
1958 | |
1959 */ | |
1960 T_MFW_BT_RESULT_BT bt_disconnect_service (T_MFW_BT_SERVICE_TYPE service) | |
1961 { | |
1962 TRACE_FUNCTION ("bt_disconnect_service()"); | |
1963 | |
1964 if((service EQ MFW_BT_HEADSET) OR | |
1965 (service EQ MFW_BT_DIAL_UP) OR | |
1966 (service EQ MFW_BT_FAX_GW)) | |
1967 { | |
1968 switch(btibtp_disconnect_service_req((T_BTI_DEVICE_TYPE)service)) | |
1969 { /* BTP_DISCONNECT_DEVICE_REQ to BT */ | |
1970 case BTP_OK: | |
1971 return MFW_BT_EXECUTE; | |
1972 case BTP_INVALID_PARAMETER: | |
1973 return MFW_BT_INVALID_PARA; | |
1974 case BTP_NOT_SUPP: | |
1975 return MFW_BT_NO_SUPP; | |
1976 case BTP_NOT_READY: | |
1977 return MFW_BT_NOT_READY; | |
1978 case BTP_INT_ERR: | |
1979 return MFW_BT_INT_ERR; | |
1980 case BTP_MEMORY_ERR: | |
1981 return MFW_BT_MEM_ERR; | |
1982 case BTP_NOK: | |
1983 return MFW_BT_NOK; | |
1984 } | |
1985 } | |
1986 else | |
1987 return MFW_BT_FAIL; | |
1988 } | |
1989 /* | |
1990 +--------------------------------------------------------------------+ | |
1991 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
1992 | STATE : code ROUTINE :bt_send_pin | | |
1993 +--------------------------------------------------------------------+ | |
1994 | |
1995 PURPOSE : send the pin requesting by bt (for authorization) | |
1996 | |
1997 */ | |
1998 T_MFW_BT_RESULT_BT bt_send_pin (T_MFW_BT_BD_ADDR bd_addr[], | |
1999 T_MFW_BT_PIN pin_code[], | |
2000 T_MFW_BT_PIN_MODE pin_mode) | |
2001 { | |
2002 UBYTE user_pin_code_length=4; | |
2003 | |
2004 TRACE_FUNCTION ("bt_send_pin()"); | |
2005 | |
2006 if(pin_mode EQ PIN_PROVIDED) | |
2007 { /* BTP_PIN_RES to BT */ | |
2008 user_pin_code_length = strlen((const char *)pin_code); | |
2009 | |
2010 switch(btibtp_pin_res(user_pin_code_length, pin_code, bd_addr)) | |
2011 { | |
2012 case BTP_OK: | |
2013 return MFW_BT_OK; | |
2014 case BTP_INVALID_PARAMETER: | |
2015 return MFW_BT_INVALID_PARA; | |
2016 case BTP_NOT_SUPP: | |
2017 return MFW_BT_NO_SUPP; | |
2018 case BTP_NOT_READY: | |
2019 return MFW_BT_NOT_READY; | |
2020 case BTP_INT_ERR: | |
2021 return MFW_BT_INT_ERR; | |
2022 case BTP_MEMORY_ERR: | |
2023 return MFW_BT_MEM_ERR; | |
2024 case BTP_NOK: | |
2025 return MFW_BT_NOK; | |
2026 } | |
2027 } | |
2028 else | |
2029 {/* if device isn't able to provide a PIN code */ | |
2030 /* BTP_PIN_RES to BT */ | |
2031 switch(btibtp_pin_res(0,0,bd_addr)) | |
2032 { | |
2033 case BTP_OK: | |
2034 return MFW_BT_OK; | |
2035 case BTP_INVALID_PARAMETER: | |
2036 return MFW_BT_INVALID_PARA; | |
2037 case BTP_NOT_SUPP: | |
2038 return MFW_BT_NO_SUPP; | |
2039 case BTP_NOT_READY: | |
2040 return MFW_BT_NOT_READY; | |
2041 case BTP_INT_ERR: | |
2042 return MFW_BT_INT_ERR; | |
2043 case BTP_MEMORY_ERR: | |
2044 return MFW_BT_MEM_ERR; | |
2045 case BTP_NOK: | |
2046 return MFW_BT_NOK; | |
2047 } | |
2048 } | |
2049 } | |
2050 | |
2051 /* | |
2052 +--------------------------------------------------------------------+ | |
2053 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2054 | STATE : code ROUTINE :bt_authorization_reply | | |
2055 +--------------------------------------------------------------------+ | |
2056 | |
2057 PURPOSE : reply the authorization requesting by bt | |
2058 | |
2059 */ | |
2060 T_MFW_BT_RESULT_BT bt_authorization_reply (T_MFW_BT_BD_ADDR bd_addr[], | |
2061 T_MFW_BT_AUTHORIZATION_MASK mfw_auth_mask, | |
2062 T_MFW_BT_AUTHORIZATION_MODE auth_mode) | |
2063 { | |
2064 T_BTI_AUTHORIZATION_MASK author_mask = 0; | |
2065 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2066 U8 len; | |
2067 | |
2068 TRACE_FUNCTION ("bt_authorization_reply()"); | |
2069 | |
2070 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2071 /* | |
2072 *** MFW_BT_AUTHORIZED_ONCE : remote device is granted access to the service once time | |
2073 MFW_BT_AUTHORIZED_ALWAYS:remote device is granted access to the service always | |
2074 MFW_BT_UNAUTHORIZED: local device does not give access to the service | |
2075 *** | |
2076 */ | |
2077 if((auth_mode EQ MFW_BT_AUTHORIZED_ONCE) OR | |
2078 (auth_mode EQ MFW_BT_AUTHORIZED_ALWAYS) OR | |
2079 (auth_mode EQ MFW_BT_UNAUTHORIZED)) | |
2080 { | |
2081 switch(mfw_auth_mask) | |
2082 {/* mask refer to the service (mask about BT_AUTHORIZATION_IND in MMI) */ | |
2083 case MFW_SERVICE_HSG: | |
2084 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2085 len = sizeof(MFW_BT_SERV_HSG); | |
2086 break; | |
2087 case MFW_SERVICE_DUN: | |
2088 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2089 len = sizeof(MFW_BT_SERV_DUN); | |
2090 break; | |
2091 case MFW_SERVICE_FAX: | |
2092 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2093 len = sizeof(MFW_BT_SERV_FAX); | |
2094 break; | |
2095 case MFW_SERVICE_OPP: | |
2096 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2097 len = sizeof(MFW_BT_SERV_OPP); | |
2098 break; | |
2099 case MFW_SERVICE_SYNC_C: | |
2100 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2101 len = sizeof(MFW_BT_SERV_SYNC_C); | |
2102 break; | |
2103 default: | |
2104 return MFW_BT_NOK; | |
2105 } | |
2106 /* because authorization mask is SCM-depend MFW requests specify mask */ | |
2107 if(btibtp_get_authorization_mask(service_name,len,&author_mask) NEQ BTP_OK) | |
2108 { | |
2109 TRACE_EVENT ("Error:bt_authorization_reply()"); | |
2110 return MFW_BT_NOK; | |
2111 } | |
2112 else | |
2113 { | |
2114 switch(btibtp_authorization_reply(bd_addr,author_mask,auth_mode)) | |
2115 { | |
2116 case BTP_OK: | |
2117 return MFW_BT_OK; | |
2118 case BTP_INVALID_PARAMETER: | |
2119 return MFW_BT_INVALID_PARA; | |
2120 case BTP_NOT_SUPP: | |
2121 return MFW_BT_NO_SUPP; | |
2122 case BTP_NOT_READY: | |
2123 return MFW_BT_NOT_READY; | |
2124 case BTP_INT_ERR: | |
2125 return MFW_BT_INT_ERR; | |
2126 case BTP_MEMORY_ERR: | |
2127 return MFW_BT_MEM_ERR; | |
2128 case BTP_NOK: | |
2129 return MFW_BT_NOK; | |
2130 } | |
2131 } | |
2132 } | |
2133 } | |
2134 | |
2135 /* | |
2136 +--------------------------------------------------------------------+ | |
2137 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2138 | STATE : code ROUTINE :bt_get_authorization_device| | |
2139 +--------------------------------------------------------------------+ | |
2140 | |
2141 PURPOSE:get authorizations to access available services on local device | |
2142 */ | |
2143 T_MFW_BT_RESULT_BT bt_get_authorization_device (T_MFW_BT_BD_ADDR bd_addr[], | |
2144 T_MFW_BT_AUTHORIZATION_MASK * mask) | |
2145 { | |
2146 T_BTI_AUTHORIZATION_MASK author_mask,mask_hsg,mask_dun,mask_fax,mask_sync_cmd,mask_opp,auth_mask; | |
2147 | |
2148 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2149 | |
2150 TRACE_FUNCTION ("bt_get_authorization_device()"); | |
2151 | |
2152 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2153 author_mask = mask_hsg = mask_dun = mask_fax = mask_sync_cmd = mask_opp = auth_mask =0; | |
2154 | |
2155 switch(btibtp_get_authorization(bd_addr,&auth_mask)) | |
2156 {/* auth_mask contains bits for several services, bits are SCM dependent */ | |
2157 case BTP_OK: | |
2158 break; | |
2159 case BTP_INVALID_PARAMETER: | |
2160 return MFW_BT_INVALID_PARA; | |
2161 case BTP_NOT_SUPP: | |
2162 return MFW_BT_NO_SUPP; | |
2163 case BTP_NOT_READY: | |
2164 return MFW_BT_NOT_READY; | |
2165 case BTP_INT_ERR: | |
2166 return MFW_BT_INT_ERR; | |
2167 case BTP_MEMORY_ERR: | |
2168 return MFW_BT_MEM_ERR; | |
2169 case BTP_NOK: | |
2170 return MFW_BT_NOK; | |
2171 } | |
2172 | |
2173 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2174 switch(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_DUN),&author_mask)) | |
2175 {/* get mask for service dial-up */ | |
2176 case BTP_OK: | |
2177 mask_dun = author_mask; | |
2178 break; | |
2179 case BTP_INVALID_PARAMETER: | |
2180 return MFW_BT_INVALID_PARA; | |
2181 case BTP_NOT_SUPP: | |
2182 return MFW_BT_NO_SUPP; | |
2183 case BTP_NOT_READY: | |
2184 return MFW_BT_NOT_READY; | |
2185 case BTP_INT_ERR: | |
2186 return MFW_BT_INT_ERR; | |
2187 case BTP_MEMORY_ERR: | |
2188 return MFW_BT_MEM_ERR; | |
2189 case BTP_NOK: | |
2190 return MFW_BT_NOK; | |
2191 } | |
2192 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2193 switch(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_HSG),&author_mask)) | |
2194 {/* get mask for service headset gateway */ | |
2195 case BTP_OK: | |
2196 mask_hsg = author_mask; | |
2197 break; | |
2198 case BTP_INVALID_PARAMETER: | |
2199 return MFW_BT_INVALID_PARA; | |
2200 case BTP_NOT_SUPP: | |
2201 return MFW_BT_NO_SUPP; | |
2202 case BTP_NOT_READY: | |
2203 return MFW_BT_NOT_READY; | |
2204 case BTP_INT_ERR: | |
2205 return MFW_BT_INT_ERR; | |
2206 case BTP_MEMORY_ERR: | |
2207 return MFW_BT_MEM_ERR; | |
2208 case BTP_NOK: | |
2209 return MFW_BT_NOK; | |
2210 } | |
2211 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2212 switch(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_FAX),&author_mask)) | |
2213 {/* get mask for service fax gateway */ | |
2214 case BTP_OK: | |
2215 mask_fax = author_mask; | |
2216 break; | |
2217 case BTP_INVALID_PARAMETER: | |
2218 return MFW_BT_INVALID_PARA; | |
2219 case BTP_NOT_SUPP: | |
2220 return MFW_BT_NO_SUPP; | |
2221 case BTP_NOT_READY: | |
2222 return MFW_BT_NOT_READY; | |
2223 case BTP_INT_ERR: | |
2224 return MFW_BT_INT_ERR; | |
2225 case BTP_MEMORY_ERR: | |
2226 return MFW_BT_MEM_ERR; | |
2227 case BTP_NOK: | |
2228 return MFW_BT_NOK; | |
2229 } | |
2230 | |
2231 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2232 switch(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_OPP),&author_mask)) | |
2233 {/* get mask for service opp object push profile */ | |
2234 case BTP_OK: | |
2235 mask_opp = author_mask; | |
2236 break; | |
2237 case BTP_INVALID_PARAMETER: | |
2238 return MFW_BT_INVALID_PARA; | |
2239 case BTP_NOT_SUPP: | |
2240 return MFW_BT_NO_SUPP; | |
2241 case BTP_NOT_READY: | |
2242 return MFW_BT_NOT_READY; | |
2243 case BTP_INT_ERR: | |
2244 return MFW_BT_INT_ERR; | |
2245 case BTP_MEMORY_ERR: | |
2246 return MFW_BT_MEM_ERR; | |
2247 case BTP_NOK: | |
2248 return MFW_BT_NOK; | |
2249 } | |
2250 | |
2251 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2252 switch(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_SYNC_C),&author_mask)) | |
2253 {/* get mask for service SYNC server with SYNC command support */ | |
2254 case BTP_OK: | |
2255 mask_sync_cmd = author_mask; | |
2256 break; | |
2257 case BTP_INVALID_PARAMETER: | |
2258 return MFW_BT_INVALID_PARA; | |
2259 case BTP_NOT_SUPP: | |
2260 return MFW_BT_NO_SUPP; | |
2261 case BTP_NOT_READY: | |
2262 return MFW_BT_NOT_READY; | |
2263 case BTP_INT_ERR: | |
2264 return MFW_BT_INT_ERR; | |
2265 case BTP_MEMORY_ERR: | |
2266 return MFW_BT_MEM_ERR; | |
2267 case BTP_NOK: | |
2268 return MFW_BT_NOK; | |
2269 } | |
2270 *mask = 0; | |
2271 /* assemble mask for MMI */ | |
2272 if((auth_mask & mask_hsg) EQ mask_hsg) | |
2273 { | |
2274 *mask = *mask | MFW_SERVICE_HSG; | |
2275 } | |
2276 if((auth_mask & mask_dun) EQ mask_dun) | |
2277 { | |
2278 *mask = *mask | MFW_SERVICE_DUN; | |
2279 } | |
2280 if((auth_mask & mask_fax) EQ mask_fax) | |
2281 { | |
2282 *mask = *mask | MFW_SERVICE_FAX; | |
2283 } | |
2284 if((auth_mask & mask_opp) EQ mask_opp) | |
2285 { | |
2286 *mask = *mask | MFW_SERVICE_OPP; | |
2287 } | |
2288 if((auth_mask & mask_sync_cmd) EQ mask_sync_cmd) | |
2289 { | |
2290 *mask = *mask | MFW_SERVICE_SYNC_C; | |
2291 } | |
2292 return MFW_BT_OK; | |
2293 } | |
2294 | |
2295 /* | |
2296 +--------------------------------------------------------------------+ | |
2297 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2298 | STATE : code ROUTINE :bt_set_authorization_device| | |
2299 +--------------------------------------------------------------------+ | |
2300 | |
2301 PURPOSE:set authorization mask to access available service on local device | |
2302 */ | |
2303 T_MFW_BT_RESULT_BT bt_set_authorization_device (T_MFW_BT_BD_ADDR bd_addr[], | |
2304 T_MFW_BT_AUTHORIZATION_MASK mask) | |
2305 { | |
2306 T_BTI_AUTHORIZATION_MASK author_mask = 0; | |
2307 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2308 U8 len; | |
2309 | |
2310 TRACE_FUNCTION ("bt_set_authorization_device()"); | |
2311 | |
2312 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2313 | |
2314 switch(mask) | |
2315 { | |
2316 case MFW_SERVICE_DUN: | |
2317 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2318 len = sizeof(MFW_BT_SERV_DUN); | |
2319 break; | |
2320 case MFW_SERVICE_HSG: | |
2321 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2322 len = sizeof(MFW_BT_SERV_HSG); | |
2323 break; | |
2324 case MFW_SERVICE_FAX: | |
2325 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2326 len = sizeof(MFW_BT_SERV_FAX); | |
2327 break; | |
2328 case MFW_SERVICE_OPP: | |
2329 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2330 len = sizeof(MFW_BT_SERV_OPP); | |
2331 break; | |
2332 case MFW_SERVICE_SYNC_C: | |
2333 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2334 len = sizeof(MFW_BT_SERV_SYNC_C); | |
2335 break; | |
2336 default: | |
2337 return MFW_BT_NOK; | |
2338 } | |
2339 | |
2340 if(btibtp_get_authorization_mask(service_name,len,&author_mask) NEQ BTP_OK) | |
2341 {/* get SCM dependent mask for specified service */ | |
2342 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2343 return MFW_BT_RET_FAIL; | |
2344 } | |
2345 | |
2346 switch(btibtp_set_authorization(bd_addr,author_mask)) | |
2347 { | |
2348 case BTP_OK: | |
2349 return MFW_BT_OK; | |
2350 case BTP_INVALID_PARAMETER: | |
2351 return MFW_BT_INVALID_PARA; | |
2352 case BTP_NOT_SUPP: | |
2353 return MFW_BT_NO_SUPP; | |
2354 case BTP_NOT_READY: | |
2355 return MFW_BT_NOT_READY; | |
2356 case BTP_INT_ERR: | |
2357 return MFW_BT_INT_ERR; | |
2358 case BTP_MEMORY_ERR: | |
2359 return MFW_BT_MEM_ERR; | |
2360 case BTP_NOK: | |
2361 return MFW_BT_NOK; | |
2362 } | |
2363 } | |
2364 | |
2365 /* | |
2366 +---------------------------------------------------------------------+ | |
2367 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2368 | STATE : code ROUTINE :bt_del_authorizations_device| | |
2369 +---------------------------------------------------------------------+ | |
2370 | |
2371 PURPOSE:delete all authorizations to access available services on local device | |
2372 */ | |
2373 T_MFW_BT_RESULT_BT bt_del_authorizations_device (T_MFW_BT_BD_ADDR bd_addr[]) | |
2374 { | |
2375 TRACE_FUNCTION ("bt_del_authorizations_device()"); | |
2376 | |
2377 switch(btibtp_set_authorization(bd_addr,0)) | |
2378 { | |
2379 case BTP_OK: | |
2380 return MFW_BT_OK; | |
2381 case BTP_INVALID_PARAMETER: | |
2382 return MFW_BT_INVALID_PARA; | |
2383 case BTP_NOT_SUPP: | |
2384 return MFW_BT_NO_SUPP; | |
2385 case BTP_NOT_READY: | |
2386 return MFW_BT_NOT_READY; | |
2387 case BTP_INT_ERR: | |
2388 return MFW_BT_INT_ERR; | |
2389 case BTP_MEMORY_ERR: | |
2390 return MFW_BT_MEM_ERR; | |
2391 case BTP_NOK: | |
2392 return MFW_BT_NOK; | |
2393 } | |
2394 } | |
2395 | |
2396 /* | |
2397 +--------------------------------------------------------------------+ | |
2398 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2399 | STATE : code ROUTINE :bt_del_authorization | | |
2400 +--------------------------------------------------------------------+ | |
2401 | |
2402 PURPOSE:delete an authorization to access available service on local device | |
2403 */ | |
2404 T_MFW_BT_RESULT_BT bt_del_authorization (T_MFW_BT_BD_ADDR bd_addr[],T_MFW_BT_AUTHORIZATION_MASK service_mask) | |
2405 { | |
2406 T_BTI_AUTHORIZATION_MASK auth_mask,author_mask = 0; | |
2407 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2408 U8 len; | |
2409 | |
2410 TRACE_EVENT ("bt_del_authorization()"); | |
2411 | |
2412 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2413 | |
2414 switch(btibtp_get_authorization(bd_addr,&auth_mask)) | |
2415 {/* give authorization mask with all authorizations of remote device */ | |
2416 case BTP_OK: | |
2417 break; | |
2418 case BTP_INVALID_PARAMETER: | |
2419 return MFW_BT_INVALID_PARA; | |
2420 case BTP_NOT_SUPP: | |
2421 return MFW_BT_NO_SUPP; | |
2422 case BTP_NOT_READY: | |
2423 return MFW_BT_NOT_READY; | |
2424 case BTP_INT_ERR: | |
2425 return MFW_BT_INT_ERR; | |
2426 case BTP_MEMORY_ERR: | |
2427 return MFW_BT_MEM_ERR; | |
2428 case BTP_NOK: | |
2429 return MFW_BT_NOK; | |
2430 } | |
2431 | |
2432 switch(service_mask) | |
2433 { | |
2434 case MFW_SERVICE_DUN: | |
2435 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2436 len = sizeof(MFW_BT_SERV_DUN); | |
2437 break; | |
2438 case MFW_SERVICE_HSG: | |
2439 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2440 len = sizeof(MFW_BT_SERV_HSG); | |
2441 break; | |
2442 case MFW_SERVICE_FAX: | |
2443 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2444 len = sizeof(MFW_BT_SERV_FAX); | |
2445 break; | |
2446 case MFW_SERVICE_OPP: | |
2447 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2448 len = sizeof(MFW_BT_SERV_OPP); | |
2449 break; | |
2450 case MFW_SERVICE_SYNC_C: | |
2451 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2452 len = sizeof(MFW_BT_SERV_SYNC_C); | |
2453 break; | |
2454 default: | |
2455 return MFW_BT_NOK; | |
2456 } | |
2457 | |
2458 if(btibtp_get_authorization_mask(service_name,len,&author_mask) NEQ BTP_OK) | |
2459 {/* give SCM dependent authorization mask for specified service */ | |
2460 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2461 return MFW_BT_RET_FAIL; | |
2462 } | |
2463 else | |
2464 { | |
2465 if((auth_mask & author_mask) EQ author_mask) | |
2466 { | |
2467 auth_mask= auth_mask & ~author_mask;/* delete the specified authorization in mask*/ | |
2468 } | |
2469 else | |
2470 return MFW_BT_INVALID_PARA; | |
2471 } | |
2472 | |
2473 switch(btibtp_set_authorization(bd_addr,auth_mask)) | |
2474 {/* set authorization mask for remote device again */ | |
2475 case BTP_OK: | |
2476 return MFW_BT_OK; | |
2477 case BTP_INVALID_PARAMETER: | |
2478 return MFW_BT_INVALID_PARA; | |
2479 case BTP_NOT_SUPP: | |
2480 return MFW_BT_NO_SUPP; | |
2481 case BTP_NOT_READY: | |
2482 return MFW_BT_NOT_READY; | |
2483 case BTP_INT_ERR: | |
2484 return MFW_BT_INT_ERR; | |
2485 case BTP_MEMORY_ERR: | |
2486 return MFW_BT_MEM_ERR; | |
2487 case BTP_NOK: | |
2488 return MFW_BT_NOK; | |
2489 } | |
2490 } | |
2491 | |
2492 /* | |
2493 +--------------------------------------------------------------------+ | |
2494 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2495 | STATE : code ROUTINE :bt_start_pairing | | |
2496 +--------------------------------------------------------------------+ | |
2497 | |
2498 PURPOSE : start pairing procedure | |
2499 | |
2500 */ | |
2501 T_MFW_BT_RESULT_BT bt_start_pairing (T_MFW_BT_BD_ADDR bd_addr[], | |
2502 T_MFW_BT_PIN pin_code[], | |
2503 T_MFW_BT_PIN_MODE pin_mode) | |
2504 { | |
2505 UBYTE user_pin_code_length=4; | |
2506 | |
2507 TRACE_FUNCTION ("bt_start_pairing()"); | |
2508 | |
2509 if(pin_mode EQ PIN_PROVIDED) | |
2510 {/* pairing provides to a link key between the gateway and the remote device */ | |
2511 | |
2512 user_pin_code_length = strlen((const char *)pin_code); | |
2513 | |
2514 switch(btibtp_start_pairing(user_pin_code_length, pin_code, bd_addr)) | |
2515 { | |
2516 case BTP_OK: | |
2517 return MFW_BT_EXECUTE; | |
2518 case BTP_INVALID_PARAMETER: | |
2519 return MFW_BT_INVALID_PARA;/* wrong pin */ | |
2520 case BTP_NOT_SUPP: | |
2521 return MFW_BT_NO_SUPP; | |
2522 case BTP_NOT_READY: | |
2523 return MFW_BT_NOT_READY; | |
2524 case BTP_INT_ERR: | |
2525 return MFW_BT_INT_ERR; | |
2526 case BTP_MEMORY_ERR: | |
2527 return MFW_BT_MEM_ERR; | |
2528 case BTP_NOK: | |
2529 return MFW_BT_NOK; | |
2530 } | |
2531 } | |
2532 else | |
2533 {/* if device isn't able to provide a PIN code */ | |
2534 switch(btibtp_start_pairing(0,0,bd_addr)) | |
2535 { | |
2536 case BTP_OK: | |
2537 return MFW_BT_EXECUTE; | |
2538 case BTP_INVALID_PARAMETER: | |
2539 return MFW_BT_INVALID_PARA; | |
2540 case BTP_NOT_SUPP: | |
2541 return MFW_BT_NO_SUPP; | |
2542 case BTP_NOT_READY: | |
2543 return MFW_BT_NOT_READY; | |
2544 case BTP_INT_ERR: | |
2545 return MFW_BT_INT_ERR; | |
2546 case BTP_MEMORY_ERR: | |
2547 return MFW_BT_MEM_ERR; | |
2548 case BTP_NOK: | |
2549 return MFW_BT_NOK; | |
2550 } | |
2551 } | |
2552 } | |
2553 /* | |
2554 +--------------------------------------------------------------------+ | |
2555 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2556 | STATE : code ROUTINE :bt_delete_paired_device | | |
2557 +--------------------------------------------------------------------+ | |
2558 | |
2559 PURPOSE : delete paired device from the paired devices database | |
2560 | |
2561 */ | |
2562 T_MFW_BT_RESULT_BT bt_delete_paired_device (T_MFW_BT_BD_ADDR bd_addr[]) | |
2563 { | |
2564 TRACE_FUNCTION ("bt_delete_paired_device()"); | |
2565 | |
2566 switch(btibtp_delete_paired_device(bd_addr)) | |
2567 { | |
2568 case BTP_OK: | |
2569 return MFW_BT_OK; | |
2570 case BTP_INVALID_PARAMETER: | |
2571 return MFW_BT_INVALID_PARA; | |
2572 case BTP_NOT_SUPP: | |
2573 return MFW_BT_NO_SUPP; | |
2574 case BTP_NOT_READY: | |
2575 return MFW_BT_NOT_READY; | |
2576 case BTP_INT_ERR: | |
2577 return MFW_BT_INT_ERR; | |
2578 case BTP_MEMORY_ERR: | |
2579 return MFW_BT_MEM_ERR; | |
2580 case BTP_NOK: | |
2581 return MFW_BT_NOK; | |
2582 } | |
2583 } | |
2584 | |
2585 /* | |
2586 +--------------------------------------------------------------------+ | |
2587 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2588 | STATE : code ROUTINE :bt_check_pair | | |
2589 +--------------------------------------------------------------------+ | |
2590 | |
2591 PURPOSE : check whether the device in the data base exists | |
2592 | |
2593 */ | |
2594 T_MFW_BT_RESULT_BT bt_check_pair (T_MFW_BT_BD_ADDR bd_addr[]) | |
2595 { | |
2596 TRACE_FUNCTION ("bt_check_pair()"); | |
2597 | |
2598 switch(btibtp_check_pairing_state(bd_addr)) | |
2599 { | |
2600 case BTP_OK: | |
2601 return MFW_BT_OK; | |
2602 case BTP_INVALID_PARAMETER: | |
2603 return MFW_BT_INVALID_PARA; | |
2604 case BTP_NOT_SUPP: | |
2605 return MFW_BT_NO_SUPP; | |
2606 case BTP_NOT_READY: | |
2607 return MFW_BT_NOT_READY; | |
2608 case BTP_INT_ERR: | |
2609 return MFW_BT_INT_ERR; | |
2610 case BTP_MEMORY_ERR: | |
2611 return MFW_BT_MEM_ERR; | |
2612 case BTP_NOK: | |
2613 return MFW_BT_NOK; | |
2614 } | |
2615 } | |
2616 #ifdef _SIMULATION_ | |
2617 /* | |
2618 +--------------------------------------------------------------------+ | |
2619 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2620 | STATE : code ROUTINE :bt_transfer_audio_in | | |
2621 +--------------------------------------------------------------------+ | |
2622 | |
2623 PURPOSE : request transfer audio from headset to phone(headset gateway) | |
2624 | |
2625 */ | |
2626 T_MFW_BT_RESULT_BT bt_transfer_audio_in (T_MFW_BT_SERVICE_TYPE service) | |
2627 { | |
2628 TRACE_FUNCTION ("bt_transfer_audio_in()"); | |
2629 | |
2630 if(service EQ MFW_BT_HEADSET) | |
2631 { | |
2632 switch(btibtp_transfer_audio_in_req((T_BTI_DEVICE_TYPE)service)) | |
2633 { /* BTP_TRANSFER_AUDIO_IN_REQ to BT */ | |
2634 case BTP_OK: | |
2635 return MFW_BT_EXECUTE; | |
2636 case BTP_INVALID_PARAMETER: | |
2637 return MFW_BT_INVALID_PARA; | |
2638 case BTP_NOT_SUPP: | |
2639 return MFW_BT_NO_SUPP; | |
2640 case BTP_NOT_READY: | |
2641 return MFW_BT_NOT_READY; | |
2642 case BTP_INT_ERR: | |
2643 return MFW_BT_INT_ERR; | |
2644 case BTP_MEMORY_ERR: | |
2645 return MFW_BT_MEM_ERR; | |
2646 case BTP_NOK: | |
2647 return MFW_BT_NOK; | |
2648 } | |
2649 } | |
2650 return MFW_BT_FAIL; | |
2651 } | |
2652 | |
2653 /* | |
2654 +--------------------------------------------------------------------+ | |
2655 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2656 | STATE : code ROUTINE :bt_transfer_audio_out| | |
2657 +--------------------------------------------------------------------+ | |
2658 | |
2659 PURPOSE : request transfer audio from headset gateway(phone)to the | |
2660 remote headset | |
2661 */ | |
2662 | |
2663 T_MFW_BT_RESULT_BT bt_transfer_audio_out(T_MFW_BT_SERVICE_TYPE service, | |
2664 T_MFW_BT_REQ_ID req_id, | |
2665 T_MFW_BT_BD_ADDR bd_addr[]) | |
2666 { | |
2667 TRACE_FUNCTION ("bt_transfer_audio_out()"); | |
2668 | |
2669 if(service EQ MFW_BT_HEADSET) | |
2670 { | |
2671 switch(btibtp_transfer_audio_out_req((T_BTI_DEVICE_TYPE)service,req_id,bd_addr)) | |
2672 { /* BTP_TRANSFER_AUDIO_OUT_REQ to BT */ | |
2673 case BTP_OK: | |
2674 return MFW_BT_EXECUTE; | |
2675 case BTP_INVALID_PARAMETER: | |
2676 return MFW_BT_INVALID_PARA; | |
2677 case BTP_NOT_SUPP: | |
2678 return MFW_BT_NO_SUPP; | |
2679 case BTP_NOT_READY: | |
2680 return MFW_BT_NOT_READY; | |
2681 case BTP_INT_ERR: | |
2682 return MFW_BT_INT_ERR; | |
2683 case BTP_MEMORY_ERR: | |
2684 return MFW_BT_MEM_ERR; | |
2685 case BTP_NOK: | |
2686 return MFW_BT_NOK; | |
2687 } | |
2688 } | |
2689 return MFW_BT_FAIL; | |
2690 } | |
2691 #endif | |
2692 | |
2693 /* | |
2694 +--------------------------------------------------------------------+ | |
2695 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2696 | STATE : code ROUTINE :bt_list_paired_dev | | |
2697 +--------------------------------------------------------------------+ | |
2698 | |
2699 PURPOSE : list all paired devices | |
2700 | |
2701 */ | |
2702 T_MFW_BT_RETURN bt_list_paired_dev(T_MFW_BT_DEV_PAIR_LIST * pair_list) | |
2703 { | |
2704 T_BT_DEV_PAIR_LIST paired_dev_list; | |
2705 U8 i; | |
2706 | |
2707 TRACE_FUNCTION ("bt_list_paired_dev()"); | |
2708 | |
2709 memset(&paired_dev_list,0,sizeof(paired_dev_list)); | |
2710 /* get list of devices of paired database */ | |
2711 if(btibtp_list_paired_dev(&paired_dev_list) NEQ BTP_OK) | |
2712 { | |
2713 TRACE_EVENT ("Error:bt_list_paired_dev()"); | |
2714 return MFW_BT_RET_FAIL; | |
2715 } | |
2716 else | |
2717 { | |
2718 pair_list->count = paired_dev_list.pair_counter;/* number of devices */ | |
2719 for(i = 0;i<paired_dev_list.pair_counter; i++) | |
2720 memcpy(pair_list->paired_bd_addr[i],paired_dev_list.paired_addr[i],MFW_BT_ADDR_MAX_LEN); | |
2721 | |
2722 return MFW_BT_RET_OK; | |
2723 } | |
2724 } | |
2725 | |
2726 /* | |
2727 +--------------------------------------------------------------------+ | |
2728 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2729 | STATE : code ROUTINE :bt_list_auth_dev | | |
2730 +--------------------------------------------------------------------+ | |
2731 | |
2732 PURPOSE : list all devices of authorization database with their | |
2733 masks of available services on the local device | |
2734 | |
2735 */ | |
2736 T_MFW_BT_RETURN bt_list_auth_dev(T_MFW_BT_AUTHORIZATION_LIST * authorization_list) | |
2737 { | |
2738 T_BT_DEV_AUTHORIZATION_LIST auth_dev_list; | |
2739 U8 i; | |
2740 T_BTI_AUTHORIZATION_MASK mask_hsg,mask_dun,mask_fax,author_mask = 0; | |
2741 T_BTI_AUTHORIZATION_MASK mask_opp,mask_sync_cmd = 0; | |
2742 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2743 | |
2744 TRACE_FUNCTION ("bt_list_auth_dev()"); | |
2745 | |
2746 memset(&auth_dev_list,0,sizeof(auth_dev_list)); | |
2747 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2748 /* get list of devices of authorization database */ | |
2749 if(btibtp_list_auth_dev(&auth_dev_list) NEQ BTP_OK) | |
2750 { | |
2751 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2752 return MFW_BT_RET_FAIL; | |
2753 } | |
2754 else | |
2755 { | |
2756 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2757 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_DUN),&author_mask) NEQ BTP_OK) | |
2758 {/* get SCM-dependent authorization mask of service DUN */ | |
2759 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2760 return MFW_BT_RET_FAIL; | |
2761 } | |
2762 else | |
2763 { | |
2764 mask_dun = author_mask; | |
2765 } | |
2766 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2767 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_HSG),&author_mask) NEQ BTP_OK) | |
2768 {/* get SCM-dependent authorization mask of service HSG */ | |
2769 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2770 return MFW_BT_RET_FAIL; | |
2771 } | |
2772 else | |
2773 { | |
2774 mask_hsg = author_mask; | |
2775 } | |
2776 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2777 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_FAX),&author_mask) NEQ BTP_OK) | |
2778 {/* get SCM-dependent authorization mask of service FAX */ | |
2779 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2780 return MFW_BT_RET_FAIL; | |
2781 } | |
2782 else | |
2783 { | |
2784 mask_fax = author_mask; | |
2785 } | |
2786 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2787 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_OPP),&author_mask) NEQ BTP_OK) | |
2788 {/* get SCM-dependent authorization mask of service OPP */ | |
2789 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2790 return MFW_BT_RET_FAIL; | |
2791 } | |
2792 else | |
2793 { | |
2794 mask_opp = author_mask; | |
2795 } | |
2796 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2797 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_SYNC_C),&author_mask) NEQ BTP_OK) | |
2798 {/* get SCM-dependent authorization mask of service SYNC server with SYNC command support */ | |
2799 TRACE_EVENT ("Error:bt_list_auth_dev()"); | |
2800 return MFW_BT_RET_FAIL; | |
2801 } | |
2802 else | |
2803 { | |
2804 mask_sync_cmd = author_mask; | |
2805 } | |
2806 | |
2807 authorization_list->count = auth_dev_list.auth_counter; | |
2808 for(i = 0;i<auth_dev_list.auth_counter; i++) | |
2809 { | |
2810 memcpy(authorization_list->auth_devices[i].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2811 /* assemble mask for each device */ | |
2812 if((auth_dev_list.auth_el[i].mask_auth & mask_hsg) EQ mask_hsg) | |
2813 { | |
2814 authorization_list->auth_devices[i].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_HSG; | |
2815 } | |
2816 | |
2817 if((auth_dev_list.auth_el[i].mask_auth & mask_dun) EQ mask_dun) | |
2818 { | |
2819 authorization_list->auth_devices[i].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_DUN; | |
2820 } | |
2821 | |
2822 if((auth_dev_list.auth_el[i].mask_auth & mask_fax) EQ mask_fax) | |
2823 { | |
2824 authorization_list->auth_devices[i].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_FAX; | |
2825 } | |
2826 | |
2827 if((auth_dev_list.auth_el[i].mask_auth & mask_opp) EQ mask_opp) | |
2828 { | |
2829 authorization_list->auth_devices[i].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_OPP; | |
2830 } | |
2831 | |
2832 if((auth_dev_list.auth_el[i].mask_auth & mask_sync_cmd) EQ mask_sync_cmd) | |
2833 { | |
2834 authorization_list->auth_devices[i].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_SYNC_C; | |
2835 } | |
2836 } | |
2837 return MFW_BT_RET_OK; | |
2838 } | |
2839 } | |
2840 | |
2841 /* | |
2842 +-------------------------------------------------------------------------+ | |
2843 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2844 | STATE : code ROUTINE :bt_authorized_devices | | |
2845 +-------------------------------------------------------------------------+ | |
2846 | |
2847 PURPOSE : list all devices of authorization database with desired | |
2848 authorization (service_mask) | |
2849 */ | |
2850 T_MFW_BT_RETURN bt_authorized_devices(T_MFW_BT_AUTHORIZATION_LIST * authorization_list,T_MFW_BT_AUTHORIZATION_MASK service_mask ) | |
2851 { | |
2852 T_BT_DEV_AUTHORIZATION_LIST auth_dev_list; | |
2853 U8 i,j; | |
2854 T_BTI_AUTHORIZATION_MASK author_mask,mask_hsg,mask_dun,mask_fax,mask_opp = 0; | |
2855 T_BTI_AUTHORIZATION_MASK mask_sync_cmd = 0; | |
2856 T_BTI_APPLI_NAME service_name[BTI_APPLI_NAME_LENGTH]; | |
2857 | |
2858 TRACE_EVENT ("bt_authorized_devices()"); | |
2859 | |
2860 memset(&auth_dev_list,0,sizeof(auth_dev_list)); | |
2861 memset(service_name,0,BTI_APPLI_NAME_LENGTH); | |
2862 /* get list of devices of authorization database */ | |
2863 if(btibtp_list_auth_dev(&auth_dev_list) NEQ BTP_OK) | |
2864 { | |
2865 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2866 return MFW_BT_RET_FAIL; | |
2867 } | |
2868 else | |
2869 { | |
2870 memcpy(service_name,MFW_BT_SERV_DUN,sizeof(MFW_BT_SERV_DUN)); | |
2871 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_DUN),&author_mask) NEQ BTP_OK) | |
2872 {/* get SCM-dependent authorization mask of service DUN */ | |
2873 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2874 return MFW_BT_RET_FAIL; | |
2875 } | |
2876 else | |
2877 { | |
2878 mask_dun = author_mask; | |
2879 } | |
2880 memcpy(service_name,MFW_BT_SERV_HSG,sizeof(MFW_BT_SERV_HSG)); | |
2881 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_HSG),&author_mask) NEQ BTP_OK) | |
2882 {/* get SCM-dependent authorization mask of service HSG */ | |
2883 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2884 return MFW_BT_RET_FAIL; | |
2885 } | |
2886 else | |
2887 { | |
2888 mask_hsg = author_mask; | |
2889 } | |
2890 memcpy(service_name,MFW_BT_SERV_FAX,sizeof(MFW_BT_SERV_FAX)); | |
2891 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_FAX),&author_mask) NEQ BTP_OK) | |
2892 {/* get SCM-dependent authorization mask of service FAX */ | |
2893 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2894 return MFW_BT_RET_FAIL; | |
2895 } | |
2896 else | |
2897 { | |
2898 mask_fax = author_mask; | |
2899 } | |
2900 memcpy(service_name,MFW_BT_SERV_OPP,sizeof(MFW_BT_SERV_OPP)); | |
2901 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_OPP),&author_mask) NEQ BTP_OK) | |
2902 {/* get SCM-dependent authorization mask of service OPP */ | |
2903 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2904 return MFW_BT_RET_FAIL; | |
2905 } | |
2906 else | |
2907 { | |
2908 mask_opp = author_mask; | |
2909 } | |
2910 memcpy(service_name,MFW_BT_SERV_SYNC_C,sizeof(MFW_BT_SERV_SYNC_C)); | |
2911 if(btibtp_get_authorization_mask(service_name,sizeof(MFW_BT_SERV_SYNC_C),&author_mask) NEQ BTP_OK) | |
2912 {/* get SCM-dependent authorization mask of service SYNC server with SYN command support */ | |
2913 TRACE_EVENT ("Error:bt_authorized_devices()"); | |
2914 return MFW_BT_RET_FAIL; | |
2915 } | |
2916 else | |
2917 { | |
2918 mask_sync_cmd = author_mask; | |
2919 } | |
2920 | |
2921 for(i=0,j=0;i<auth_dev_list.auth_counter; i++) | |
2922 { | |
2923 switch(service_mask) | |
2924 { | |
2925 case MFW_SERVICE_HSG: | |
2926 if((auth_dev_list.auth_el[i].mask_auth & mask_hsg) EQ mask_hsg) | |
2927 { | |
2928 authorization_list->auth_devices[j].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_HSG; | |
2929 memcpy(authorization_list->auth_devices[j].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2930 authorization_list->count++; | |
2931 j++; | |
2932 } | |
2933 break; | |
2934 case MFW_SERVICE_DUN: | |
2935 if((auth_dev_list.auth_el[i].mask_auth & mask_dun) EQ mask_dun) | |
2936 { | |
2937 authorization_list->auth_devices[j].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_DUN; | |
2938 memcpy(authorization_list->auth_devices[j].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2939 authorization_list->count++; | |
2940 j++; | |
2941 } | |
2942 break; | |
2943 case MFW_SERVICE_FAX: | |
2944 if((auth_dev_list.auth_el[i].mask_auth & mask_fax) EQ mask_fax) | |
2945 { | |
2946 authorization_list->auth_devices[j].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_FAX; | |
2947 memcpy(authorization_list->auth_devices[j].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2948 authorization_list->count++; | |
2949 j++; | |
2950 } | |
2951 break; | |
2952 case MFW_SERVICE_OPP: | |
2953 if((auth_dev_list.auth_el[i].mask_auth & mask_opp) EQ mask_opp) | |
2954 { | |
2955 authorization_list->auth_devices[j].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_OPP; | |
2956 memcpy(authorization_list->auth_devices[j].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2957 authorization_list->count++; | |
2958 j++; | |
2959 } | |
2960 break; | |
2961 case MFW_SERVICE_SYNC_C: | |
2962 if((auth_dev_list.auth_el[i].mask_auth & mask_sync_cmd) EQ mask_sync_cmd) | |
2963 { | |
2964 authorization_list->auth_devices[j].mask_authorization = authorization_list->auth_devices[i].mask_authorization | MFW_SERVICE_SYNC_C; | |
2965 memcpy(authorization_list->auth_devices[j].remote_bd_addr,auth_dev_list.auth_el[i].remote_addr,MFW_BT_ADDR_MAX_LEN); | |
2966 authorization_list->count++; | |
2967 j++; | |
2968 } | |
2969 break; | |
2970 default: | |
2971 return MFW_BT_RET_FAIL; | |
2972 } | |
2973 } | |
2974 return MFW_BT_RET_OK; | |
2975 } | |
2976 } | |
2977 /* | |
2978 +--------------------------------------------------------------------+ | |
2979 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
2980 | STATE : code ROUTINE :bt_clear_list_found_dev| | |
2981 +--------------------------------------------------------------------+ | |
2982 | |
2983 PURPOSE : clear list of found devices with theirs service id's | |
2984 | |
2985 */ | |
2986 T_MFW_BT_RETURN bt_clear_list_found_dev (void) | |
2987 { | |
2988 T_MFW_BT_DEVICE_ID *help_ptr; | |
2989 T_MFW_BT_DEVICE_ID *help_h_ptr; | |
2990 | |
2991 TRACE_FUNCTION ("bt_clear_list_found_dev()"); | |
2992 | |
2993 if(service_list.device_id) /* check:is list of found hs empty ?*/ | |
2994 { | |
2995 help_ptr = service_list.device_id->next; | |
2996 MFREE(service_list.device_id); /* free memory first element */ | |
2997 service_list.device_id = help_ptr; | |
2998 while(help_ptr) | |
2999 { | |
3000 help_h_ptr = help_ptr->next; | |
3001 MFREE(help_ptr); /* free next elements */ | |
3002 help_ptr = help_h_ptr; | |
3003 service_list.device_id = help_ptr; | |
3004 } | |
3005 } | |
3006 return MFW_BT_RET_OK; | |
3007 } | |
3008 | |
3009 /* | |
3010 +--------------------------------------------------------------------+ | |
3011 | PROJECT : MMI-Framework (8445)MODULE : MFW_BT | | |
3012 | STATE : code ROUTINE :bt_clear_all_lists_found_serv| | |
3013 +--------------------------------------------------------------------+ | |
3014 | |
3015 PURPOSE : clear all list of found services | |
3016 | |
3017 */ | |
3018 T_MFW_BT_RETURN bt_clear_all_lists_found_serv (void) | |
3019 { | |
3020 T_MFW_BT_SERVICE_ID *help_ptr; | |
3021 T_MFW_BT_SERVICE_ID *help_h_ptr; | |
3022 | |
3023 TRACE_FUNCTION ("bt_clear_all_lists_found_serv()"); | |
3024 | |
3025 if(found_headset.device_id) /* check: is list of found hs empty ? */ | |
3026 { | |
3027 help_ptr = found_headset.device_id->next; | |
3028 MFREE(found_headset.device_id->bd_name);/* free name of first element */ | |
3029 MFREE(found_headset.device_id); /* free memory first element */ | |
3030 found_headset.device_id = help_ptr; | |
3031 while(help_ptr) | |
3032 { | |
3033 help_h_ptr = help_ptr->next; | |
3034 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3035 MFREE(help_ptr); /* free next elements */ | |
3036 help_ptr = help_h_ptr; | |
3037 found_headset.device_id = help_ptr; | |
3038 } | |
3039 } | |
3040 if(found_dial_up.device_id)/* check: is list of found dun empty ? */ | |
3041 { | |
3042 help_ptr = found_dial_up.device_id->next; | |
3043 MFREE(found_dial_up.device_id->bd_name);/* free name of first element */ | |
3044 MFREE(found_dial_up.device_id); /* free memory first element */ | |
3045 found_dial_up.device_id = help_ptr; | |
3046 while(help_ptr) | |
3047 { | |
3048 help_h_ptr = help_ptr->next; | |
3049 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3050 MFREE(help_ptr); /* free next elements */ | |
3051 help_ptr = help_h_ptr; | |
3052 found_dial_up.device_id = help_ptr; | |
3053 } | |
3054 } | |
3055 if(found_fax.device_id)/* check: is list of found fax empty ? */ | |
3056 { | |
3057 help_ptr = found_fax.device_id->next; | |
3058 MFREE(found_fax.device_id->bd_name);/* free name of first element */ | |
3059 MFREE(found_fax.device_id); /* free memory first element */ | |
3060 found_fax.device_id = help_ptr; | |
3061 while(help_ptr) | |
3062 { | |
3063 help_h_ptr = help_ptr->next; | |
3064 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3065 MFREE(help_ptr); /* free next elements */ | |
3066 help_ptr = help_h_ptr; | |
3067 found_fax.device_id = help_ptr; | |
3068 } | |
3069 } | |
3070 if(found_opp.device_id)/* check: is list of found OPP empty ? */ | |
3071 { | |
3072 help_ptr = found_opp.device_id->next; | |
3073 MFREE(found_opp.device_id->bd_name);/* free name of first element */ | |
3074 MFREE(found_opp.device_id); /* free memory first element */ | |
3075 found_opp.device_id = help_ptr; | |
3076 while(help_ptr) | |
3077 { | |
3078 help_h_ptr = help_ptr->next; | |
3079 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3080 MFREE(help_ptr); /* free next elements */ | |
3081 help_ptr = help_h_ptr; | |
3082 found_opp.device_id = help_ptr; | |
3083 } | |
3084 } | |
3085 if(found_sync.device_id)/* check: is list of found SYNC server empty ? */ | |
3086 { | |
3087 help_ptr = found_sync.device_id->next; | |
3088 MFREE(found_sync.device_id->bd_name);/* free name of first element */ | |
3089 MFREE(found_sync.device_id); /* free memory first element */ | |
3090 found_sync.device_id = help_ptr; | |
3091 while(help_ptr) | |
3092 { | |
3093 help_h_ptr = help_ptr->next; | |
3094 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3095 MFREE(help_ptr); /* free next elements */ | |
3096 help_ptr = help_h_ptr; | |
3097 found_sync.device_id = help_ptr; | |
3098 } | |
3099 } | |
3100 if(found_sync_cmd.device_id)/* check: is list of found SYNC_CMD server empty ? */ | |
3101 { | |
3102 help_ptr = found_sync_cmd.device_id->next; | |
3103 MFREE(found_sync_cmd.device_id->bd_name);/* free name of first element */ | |
3104 MFREE(found_sync_cmd.device_id); /* free memory first element */ | |
3105 found_sync_cmd.device_id = help_ptr; | |
3106 while(help_ptr) | |
3107 { | |
3108 help_h_ptr = help_ptr->next; | |
3109 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3110 MFREE(help_ptr); /* free next elements */ | |
3111 help_ptr = help_h_ptr; | |
3112 found_sync_cmd.device_id = help_ptr; | |
3113 } | |
3114 } | |
3115 return MFW_BT_RET_OK; | |
3116 } | |
3117 /* | |
3118 +--------------------------------------------------------------------+ | |
3119 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3120 | STATE : code ROUTINE :bt_clear_list_found_serv| | |
3121 +--------------------------------------------------------------------+ | |
3122 | |
3123 PURPOSE : clear list of specific found service | |
3124 | |
3125 */ | |
3126 T_MFW_BT_RETURN bt_clear_list_found_serv (T_MFW_BT_SERVICE_TYPE service) | |
3127 { | |
3128 T_MFW_BT_SERVICE_ID *help_ptr; | |
3129 T_MFW_BT_SERVICE_ID *help_h_ptr; | |
3130 | |
3131 TRACE_FUNCTION ("bt_clear_list_found_serv()"); | |
3132 | |
3133 if(service EQ MFW_BT_HEADSET) | |
3134 { | |
3135 if(found_headset.device_id) /* check: is list of found hs empty ? */ | |
3136 { | |
3137 help_ptr = found_headset.device_id->next; | |
3138 MFREE(found_headset.device_id->bd_name);/* free name of first element */ | |
3139 MFREE(found_headset.device_id); /* free memory first element */ | |
3140 found_headset.device_id = help_ptr; | |
3141 while(help_ptr) | |
3142 { | |
3143 help_h_ptr = help_ptr->next; | |
3144 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3145 MFREE(help_ptr); /* free next elements */ | |
3146 help_ptr = help_h_ptr; | |
3147 found_headset.device_id = help_ptr; | |
3148 } | |
3149 } | |
3150 return MFW_BT_RET_OK; | |
3151 } | |
3152 else if(service EQ MFW_BT_DIAL_UP) | |
3153 {/* check: is list of found dun empty ? */ | |
3154 if(found_dial_up.device_id) | |
3155 { | |
3156 help_ptr = found_dial_up.device_id->next; | |
3157 MFREE(found_dial_up.device_id->bd_name);/* free name of first element */ | |
3158 MFREE(found_dial_up.device_id); /* free memory first element */ | |
3159 found_dial_up.device_id = help_ptr; | |
3160 while(help_ptr) | |
3161 { | |
3162 help_h_ptr = help_ptr->next; | |
3163 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3164 MFREE(help_ptr); /* free next elements */ | |
3165 help_ptr = help_h_ptr; | |
3166 found_dial_up.device_id = help_ptr; | |
3167 } | |
3168 } | |
3169 return MFW_BT_RET_OK; | |
3170 } | |
3171 else if(service EQ MFW_BT_FAX_GW) | |
3172 {/* check: is list of found fax empty ? */ | |
3173 if(found_fax.device_id) | |
3174 { | |
3175 help_ptr = found_fax.device_id->next; | |
3176 MFREE(found_fax.device_id->bd_name);/* free name of first element */ | |
3177 MFREE(found_fax.device_id); /* free memory first element */ | |
3178 found_fax.device_id = help_ptr; | |
3179 while(help_ptr) | |
3180 { | |
3181 help_h_ptr = help_ptr->next; | |
3182 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3183 MFREE(help_ptr); /* free next elements */ | |
3184 help_ptr = help_h_ptr; | |
3185 found_fax.device_id = help_ptr; | |
3186 } | |
3187 } | |
3188 return MFW_BT_RET_OK; | |
3189 } | |
3190 else if(service EQ MFW_BT_OPP) | |
3191 {/* check: is list of found OPP empty ? */ | |
3192 if(found_opp.device_id) | |
3193 { | |
3194 help_ptr = found_opp.device_id->next; | |
3195 MFREE(found_opp.device_id->bd_name);/* free name of first element */ | |
3196 MFREE(found_opp.device_id); /* free memory first element */ | |
3197 found_opp.device_id = help_ptr; | |
3198 while(help_ptr) | |
3199 { | |
3200 help_h_ptr = help_ptr->next; | |
3201 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3202 MFREE(help_ptr); /* free next elements */ | |
3203 help_ptr = help_h_ptr; | |
3204 found_opp.device_id = help_ptr; | |
3205 } | |
3206 } | |
3207 return MFW_BT_RET_OK; | |
3208 } | |
3209 else if(service EQ MFW_BT_SYNC) | |
3210 {/* check: is list of found SYNC server empty ? */ | |
3211 if(found_sync.device_id) | |
3212 { | |
3213 help_ptr = found_sync.device_id->next; | |
3214 MFREE(found_sync.device_id->bd_name);/* free name of first element */ | |
3215 MFREE(found_sync.device_id); /* free memory first element */ | |
3216 found_sync.device_id = help_ptr; | |
3217 while(help_ptr) | |
3218 { | |
3219 help_h_ptr = help_ptr->next; | |
3220 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3221 MFREE(help_ptr); /* free next elements */ | |
3222 help_ptr = help_h_ptr; | |
3223 found_sync.device_id = help_ptr; | |
3224 } | |
3225 } | |
3226 return MFW_BT_RET_OK; | |
3227 } | |
3228 else if(service EQ MFW_BT_SYNC_CMD) | |
3229 {/* check:is list of found SYNC server with support SYN commands empty ? */ | |
3230 if(found_sync_cmd.device_id) | |
3231 { | |
3232 help_ptr = found_sync_cmd.device_id->next; | |
3233 MFREE(found_sync_cmd.device_id->bd_name);/* free name of first element */ | |
3234 MFREE(found_sync_cmd.device_id); /* free memory first element */ | |
3235 found_sync_cmd.device_id = help_ptr; | |
3236 while(help_ptr) | |
3237 { | |
3238 help_h_ptr = help_ptr->next; | |
3239 MFREE(help_ptr->bd_name); /* free name of next elements */ | |
3240 MFREE(help_ptr); /* free next elements */ | |
3241 help_ptr = help_h_ptr; | |
3242 found_sync_cmd.device_id = help_ptr; | |
3243 } | |
3244 } | |
3245 return MFW_BT_RET_OK; | |
3246 } | |
3247 else | |
3248 return MFW_BT_RET_FAIL; | |
3249 } | |
3250 /* | |
3251 +--------------------------------------------------------------------+ | |
3252 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3253 | STATE : code ROUTINE :bt_set_param_headset| | |
3254 +--------------------------------------------------------------------+ | |
3255 | |
3256 PURPOSE:remote control of speaker or microphone gain (profile headset) | |
3257 */ | |
3258 | |
3259 T_MFW_BT_RESULT_BT bt_set_param_headset (T_MFW_BT_SERVICE_TYPE service, | |
3260 T_MFW_BT_PARAM_NUMBER nb, | |
3261 T_MFW_BT_CHANGE_PARA type, | |
3262 U16 new_value) | |
3263 { | |
3264 TRACE_FUNCTION ("bt_set_param_headset()"); | |
3265 if(service EQ MFW_BT_HEADSET) | |
3266 { | |
3267 /* update parameter speaker or microphone */ | |
3268 if((nb EQ MFW_BT_MIC_GAIN) OR | |
3269 (nb EQ MFW_BT_SPEAKER_GAIN)) | |
3270 {/* increase or decrease (+1/-1) or set new value */ | |
3271 if((type EQ MFW_BT_PARA_INC) OR | |
3272 (type EQ MFW_BT_PARA_DEC) OR | |
3273 (type EQ MFW_BT_PARA_SET)) | |
3274 { | |
3275 if(type EQ MFW_BT_PARA_SET) | |
3276 {/* for set value valid value is needed */ | |
3277 if(!new_value) | |
3278 { | |
3279 return MFW_BT_NOK; | |
3280 } | |
3281 } | |
3282 | |
3283 switch(btibtp_set_param_headset(nb,type,new_value)) | |
3284 { | |
3285 case BTP_OK: | |
3286 return MFW_BT_OK; | |
3287 case BTP_INVALID_PARAMETER: | |
3288 return MFW_BT_INVALID_PARA; | |
3289 case BTP_NOT_SUPP: | |
3290 return MFW_BT_NO_SUPP; | |
3291 case BTP_NOT_READY: | |
3292 return MFW_BT_NOT_READY; | |
3293 case BTP_INT_ERR: | |
3294 return MFW_BT_INT_ERR; | |
3295 case BTP_MEMORY_ERR: | |
3296 return MFW_BT_MEM_ERR; | |
3297 case BTP_NOK: | |
3298 return MFW_BT_NOK; | |
3299 } | |
3300 } | |
3301 else | |
3302 return MFW_BT_NOK; | |
3303 } | |
3304 else | |
3305 return MFW_BT_FAIL; | |
3306 } | |
3307 else | |
3308 return MFW_BT_FAIL; | |
3309 } | |
3310 | |
3311 /* | |
3312 +--------------------------------------------------------------------+ | |
3313 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3314 | STATE : code ROUTINE :bt_get_default_service_info| | |
3315 +--------------------------------------------------------------------+ | |
3316 | |
3317 PURPOSE:get device info from default headset list | |
3318 */ | |
3319 T_MFW_BT_RESULT_BT bt_get_default_service_info (T_MFW_BT_SERVICE_TYPE service, | |
3320 T_MFW_BT_DEV_ID dev_id, | |
3321 T_MFW_BT_HEADSET_INFO *hs_info) | |
3322 { | |
3323 T_BTI_HSG_DEFAULT_INFO headset_info; | |
3324 | |
3325 TRACE_FUNCTION ("bt_get_default_service_info()"); | |
3326 | |
3327 memset(&headset_info,0,sizeof(headset_info)); | |
3328 | |
3329 if(service EQ MFW_BT_HEADSET) | |
3330 { | |
3331 switch(btibtp_get_headset_info(dev_id,&headset_info)) | |
3332 { | |
3333 case BTP_OK: | |
3334 hs_info->priority = headset_info.priority; | |
3335 memcpy(hs_info->bd_addr,headset_info.bd_addr,sizeof(headset_info.bd_addr)); | |
3336 memcpy(hs_info->hsg_name,headset_info.name,MFW_BT_HSG_NAME_MAX_LEN); | |
3337 hs_info->mfw_remote_audio_control_support = headset_info.bt_remote_audio_control_support; | |
3338 return MFW_BT_OK; | |
3339 case BTP_INVALID_PARAMETER: | |
3340 return MFW_BT_INVALID_PARA; | |
3341 case BTP_NOT_SUPP: | |
3342 return MFW_BT_NO_SUPP; | |
3343 case BTP_NOT_READY: | |
3344 return MFW_BT_NOT_READY; | |
3345 case BTP_INT_ERR: | |
3346 return MFW_BT_INT_ERR; | |
3347 case BTP_MEMORY_ERR: | |
3348 return MFW_BT_MEM_ERR; | |
3349 case BTP_NOK: | |
3350 return MFW_BT_NOK; | |
3351 } | |
3352 } | |
3353 else | |
3354 return MFW_BT_FAIL; | |
3355 } | |
3356 | |
3357 /* | |
3358 +--------------------------------------------------------------------+ | |
3359 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3360 | STATE : code ROUTINE :bt_set_prio_default_service| | |
3361 +--------------------------------------------------------------------+ | |
3362 | |
3363 PURPOSE:set priority in default headset list | |
3364 */ | |
3365 T_MFW_BT_RESULT_BT bt_set_prio_default_service (T_MFW_BT_SERVICE_TYPE service, | |
3366 T_MFW_BT_DEV_ID dev_id, | |
3367 T_MFW_BT_PRIORITY priority) | |
3368 { | |
3369 TRACE_FUNCTION ("bt_set_prio_default_service()"); | |
3370 | |
3371 if(service EQ MFW_BT_HEADSET) | |
3372 { | |
3373 switch(btibtp_set_prio_default_headset(dev_id,priority)) | |
3374 { | |
3375 case BTP_OK: | |
3376 return MFW_BT_OK; | |
3377 case BTP_INVALID_PARAMETER: | |
3378 return MFW_BT_INVALID_PARA; | |
3379 case BTP_NOT_SUPP: | |
3380 return MFW_BT_NO_SUPP; | |
3381 case BTP_NOT_READY: | |
3382 return MFW_BT_NOT_READY; | |
3383 case BTP_INT_ERR: | |
3384 return MFW_BT_INT_ERR; | |
3385 case BTP_MEMORY_ERR: | |
3386 return MFW_BT_MEM_ERR; | |
3387 case BTP_NOK: | |
3388 return MFW_BT_NOK; | |
3389 } | |
3390 } | |
3391 else | |
3392 { | |
3393 TRACE_EVENT ("bt_set_prio_default_service:Error"); | |
3394 return MFW_BT_FAIL; | |
3395 } | |
3396 } | |
3397 | |
3398 /* | |
3399 +--------------------------------------------------------------------+ | |
3400 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3401 | STATE : code ROUTINE :bt_get_config | | |
3402 +--------------------------------------------------------------------+ | |
3403 | |
3404 PURPOSE:get configuration parameters of bluetooth profile headset | |
3405 */ | |
3406 T_MFW_BT_RESULT_BT bt_get_config (T_MFW_BT_SERVICE_TYPE service, | |
3407 T_MFW_BT_HSG_CLIENT_CONFIG *client_conf, | |
3408 T_MFW_BT_HSG_SERVER_CONFIG *server_conf) | |
3409 { | |
3410 T_BTI_HSG_CLIENT_CONF bt_client_conf; | |
3411 T_BTI_HSG_SERVER_CONF bt_server_conf; | |
3412 | |
3413 TRACE_FUNCTION ("bt_get_config()"); | |
3414 | |
3415 memset(&bt_client_conf,0,sizeof(bt_client_conf)); | |
3416 memset(&bt_server_conf,0,sizeof(bt_server_conf)); | |
3417 | |
3418 if(service EQ MFW_BT_HEADSET) | |
3419 { | |
3420 switch(btibtp_get_config((T_BTI_DEVICE_TYPE)service,&bt_client_conf,&bt_server_conf)) | |
3421 { | |
3422 case BTP_OK: | |
3423 switch(bt_client_conf.config_mode) | |
3424 { | |
3425 case BTI_AUTO_OUTG_DEF_CONN_OFF: | |
3426 client_conf->config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_OFF; | |
3427 break; | |
3428 case BTI_AUTO_OUTG_DEF_CONN_ON: | |
3429 client_conf->config_mode = MFW_BT_AUTO_OUTG_DEF_CONN_ON; | |
3430 break; | |
3431 default: | |
3432 return MFW_BT_INVALID_PARA; | |
3433 } | |
3434 client_conf->security = bt_client_conf.security; | |
3435 | |
3436 server_conf->security = bt_server_conf.security; | |
3437 server_conf->serv_con_conf = bt_server_conf.conn_config; | |
3438 server_conf->conn_break = bt_server_conf.conn_break; | |
3439 server_conf->conn_time = bt_server_conf.conn_time; | |
3440 server_conf->nb_phone = bt_server_conf.nb_phone; | |
3441 memcpy(server_conf->mfw_phone_list,bt_server_conf.phon_list,sizeof(bt_server_conf.phon_list)); | |
3442 memcpy(server_conf->mfw_key_list,bt_server_conf.key_list,sizeof(bt_server_conf.key_list)); | |
3443 return MFW_BT_OK; | |
3444 case BTP_INVALID_PARAMETER: | |
3445 return MFW_BT_INVALID_PARA; | |
3446 case BTP_NOT_SUPP: | |
3447 return MFW_BT_NO_SUPP; | |
3448 case BTP_NOT_READY: | |
3449 return MFW_BT_NOT_READY; | |
3450 case BTP_INT_ERR: | |
3451 return MFW_BT_INT_ERR; | |
3452 case BTP_MEMORY_ERR: | |
3453 return MFW_BT_MEM_ERR; | |
3454 case BTP_NOK: | |
3455 return MFW_BT_NOK; | |
3456 } | |
3457 } | |
3458 else | |
3459 return MFW_BT_FAIL; | |
3460 } | |
3461 #ifdef _SIMULATION_ | |
3462 /* | |
3463 +--------------------------------------------------------------------+ | |
3464 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3465 | STATE : code ROUTINE :bt_save_config | | |
3466 +--------------------------------------------------------------------+ | |
3467 | |
3468 PURPOSE:save configuration parameters of bluetooth profile headset | |
3469 */ | |
3470 T_MFW_BT_RESULT_BT bt_save_config (T_MFW_BT_SERVICE_TYPE service) | |
3471 { | |
3472 TRACE_FUNCTION ("bt_save_config()"); | |
3473 | |
3474 if(service EQ MFW_BT_HEADSET) | |
3475 { | |
3476 switch(btibtp_save_config((T_BTI_DEVICE_TYPE)service)) | |
3477 { | |
3478 case BTP_OK: | |
3479 return MFW_BT_OK; | |
3480 case BTP_INVALID_PARAMETER: | |
3481 return MFW_BT_INVALID_PARA; | |
3482 case BTP_NOT_SUPP: | |
3483 return MFW_BT_NO_SUPP; | |
3484 case BTP_NOT_READY: | |
3485 return MFW_BT_NOT_READY; | |
3486 case BTP_INT_ERR: | |
3487 return MFW_BT_INT_ERR; | |
3488 case BTP_MEMORY_ERR: | |
3489 return MFW_BT_MEM_ERR; | |
3490 case BTP_NOK: | |
3491 return MFW_BT_NOK; | |
3492 } | |
3493 } | |
3494 else | |
3495 return MFW_BT_FAIL; | |
3496 } | |
3497 | |
3498 /* | |
3499 +--------------------------------------------------------------------+ | |
3500 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3501 | STATE : code ROUTINE :bt_restore_config| | |
3502 +--------------------------------------------------------------------+ | |
3503 | |
3504 PURPOSE:restore configuration parameters of bluetooth profile headset | |
3505 */ | |
3506 T_MFW_BT_RESULT_BT bt_restore_config (T_MFW_BT_SERVICE_TYPE service) | |
3507 { | |
3508 TRACE_FUNCTION ("bt_restore_config()"); | |
3509 | |
3510 if(service EQ MFW_BT_HEADSET) | |
3511 { | |
3512 switch(btibtp_restore_config((T_BTI_DEVICE_TYPE)service)) | |
3513 { | |
3514 case BTP_OK: | |
3515 return MFW_BT_EXECUTE; | |
3516 case BTP_INVALID_PARAMETER: | |
3517 return MFW_BT_INVALID_PARA; | |
3518 case BTP_NOT_SUPP: | |
3519 return MFW_BT_NO_SUPP; | |
3520 case BTP_NOT_READY: | |
3521 return MFW_BT_NOT_READY; | |
3522 case BTP_INT_ERR: | |
3523 return MFW_BT_INT_ERR; | |
3524 case BTP_MEMORY_ERR: | |
3525 return MFW_BT_MEM_ERR; | |
3526 case BTP_NOK: | |
3527 return MFW_BT_NOK; | |
3528 } | |
3529 } | |
3530 else | |
3531 return MFW_BT_FAIL; | |
3532 } | |
3533 | |
3534 /* | |
3535 +--------------------------------------------------------------------+ | |
3536 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3537 | STATE : code ROUTINE :bt_save_default_list| | |
3538 +--------------------------------------------------------------------+ | |
3539 | |
3540 PURPOSE: save default headset list in non-volatile memory | |
3541 */ | |
3542 T_MFW_BT_RESULT_BT bt_save_default_list (T_MFW_BT_SERVICE_TYPE service) | |
3543 { | |
3544 TRACE_FUNCTION ("bt_save_default_list()"); | |
3545 | |
3546 if(service EQ MFW_BT_HEADSET) | |
3547 { | |
3548 switch(btibtp_save_def_list((T_BTI_DEVICE_TYPE)service)) | |
3549 { | |
3550 case BTP_OK: | |
3551 return MFW_BT_OK; | |
3552 case BTP_INVALID_PARAMETER: | |
3553 return MFW_BT_INVALID_PARA; | |
3554 case BTP_NOT_SUPP: | |
3555 return MFW_BT_NO_SUPP; | |
3556 case BTP_NOT_READY: | |
3557 return MFW_BT_NOT_READY; | |
3558 case BTP_INT_ERR: | |
3559 return MFW_BT_INT_ERR; | |
3560 case BTP_MEMORY_ERR: | |
3561 return MFW_BT_MEM_ERR; | |
3562 case BTP_NOK: | |
3563 return MFW_BT_NOK; | |
3564 } | |
3565 } | |
3566 else | |
3567 return MFW_BT_FAIL; | |
3568 } | |
3569 | |
3570 /* | |
3571 +--------------------------------------------------------------------+ | |
3572 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3573 | STATE : code ROUTINE :bt_restore_default_list| | |
3574 +--------------------------------------------------------------------+ | |
3575 | |
3576 PURPOSE: restore default headset list from non-volatile memory | |
3577 */ | |
3578 T_MFW_BT_RESULT_BT bt_restore_default_list (T_MFW_BT_SERVICE_TYPE service) | |
3579 { | |
3580 TRACE_FUNCTION ("bt_restore_default_list()"); | |
3581 | |
3582 if(service EQ MFW_BT_HEADSET) | |
3583 { | |
3584 switch(btibtp_restore_def_list((T_BTI_DEVICE_TYPE)service)) | |
3585 { | |
3586 case BTP_OK: | |
3587 return MFW_BT_EXECUTE; | |
3588 case BTP_INVALID_PARAMETER: | |
3589 return MFW_BT_INVALID_PARA; | |
3590 case BTP_NOT_SUPP: | |
3591 return MFW_BT_NO_SUPP; | |
3592 case BTP_NOT_READY: | |
3593 return MFW_BT_NOT_READY; | |
3594 case BTP_INT_ERR: | |
3595 return MFW_BT_INT_ERR; | |
3596 case BTP_MEMORY_ERR: | |
3597 return MFW_BT_MEM_ERR; | |
3598 case BTP_NOK: | |
3599 return MFW_BT_NOK; | |
3600 } | |
3601 } | |
3602 else | |
3603 return MFW_BT_FAIL; | |
3604 } | |
3605 #endif | |
3606 /* | |
3607 +--------------------------------------------------------------------+ | |
3608 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3609 | STATE : code ROUTINE : bt_set_security_mode | | |
3610 +--------------------------------------------------------------------+ | |
3611 | |
3612 PURPOSE: set common security mode | |
3613 */ | |
3614 T_MFW_BT_RESULT_BT bt_set_security_mode (T_MFW_BT_SECURITY_MODE sec_mode) | |
3615 { | |
3616 TRACE_FUNCTION ("bt_set_security_mode()"); | |
3617 | |
3618 /* security mode 1: local device will never initiate any security procedure, | |
3619 only services which registered their security requirements | |
3620 as no-security, will be usable | |
3621 security mode 2: local device shall initiate security procedure | |
3622 according to the requirements of the requested service | |
3623 security mode 3: local device will initiate security procedures | |
3624 before setting up the link and informing the host, | |
3625 some services with no security requirements may be unusable */ | |
3626 if((sec_mode EQ MFW_BT_SECURITY_MODE_1) OR | |
3627 (sec_mode EQ MFW_BT_SECURITY_MODE_2) OR | |
3628 (sec_mode EQ MFW_BT_SECURITY_MODE_3)) | |
3629 { | |
3630 switch(btibtp_set_sec_mode((T_BTI_SM_SECURITY_MODE)sec_mode)) | |
3631 { | |
3632 case BTP_OK: | |
3633 return MFW_BT_OK; | |
3634 case BTP_INVALID_PARAMETER: | |
3635 return MFW_BT_INVALID_PARA; | |
3636 case BTP_NOT_SUPP: | |
3637 return MFW_BT_NO_SUPP; | |
3638 case BTP_NOT_READY: | |
3639 return MFW_BT_NOT_READY; | |
3640 case BTP_INT_ERR: | |
3641 return MFW_BT_INT_ERR; | |
3642 case BTP_MEMORY_ERR: | |
3643 return MFW_BT_MEM_ERR; | |
3644 case BTP_NOK: | |
3645 return MFW_BT_NOK; | |
3646 } | |
3647 } | |
3648 else | |
3649 return MFW_BT_FAIL; | |
3650 } | |
3651 | |
3652 /* | |
3653 +--------------------------------------------------------------------+ | |
3654 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3655 | STATE : code ROUTINE : bt_set_pair_mode | | |
3656 +--------------------------------------------------------------------+ | |
3657 | |
3658 PURPOSE: set pairing mode | |
3659 */ | |
3660 T_MFW_BT_RESULT_BT bt_set_pair_mode (T_MFW_BT_PAIRABLE_MODE pair_mode) | |
3661 { | |
3662 TRACE_FUNCTION ("bt_set_pair_mode()"); | |
3663 | |
3664 if((pair_mode EQ MFW_BT_PAIRABLE) OR | |
3665 (pair_mode EQ MFW_BT_NON_PAIRABLE)) | |
3666 { | |
3667 switch(btibtp_set_pair_mode((T_BTI_SM_PAIRABLE_MODE)pair_mode)) | |
3668 { | |
3669 case BTP_OK: | |
3670 return MFW_BT_OK; | |
3671 case BTP_INVALID_PARAMETER: | |
3672 return MFW_BT_INVALID_PARA; | |
3673 case BTP_NOT_SUPP: | |
3674 return MFW_BT_NO_SUPP; | |
3675 case BTP_NOT_READY: | |
3676 return MFW_BT_NOT_READY; | |
3677 case BTP_INT_ERR: | |
3678 return MFW_BT_INT_ERR; | |
3679 case BTP_MEMORY_ERR: | |
3680 return MFW_BT_MEM_ERR; | |
3681 case BTP_NOK: | |
3682 return MFW_BT_NOK; | |
3683 } | |
3684 } | |
3685 else | |
3686 return MFW_BT_FAIL; | |
3687 } | |
3688 | |
3689 /* | |
3690 +------------------------------------------------------------------------+ | |
3691 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3692 | STATE : code ROUTINE : bt_set_default_security | | |
3693 +------------------------------------------------------------------------+ | |
3694 | |
3695 PURPOSE: set default security requirements | |
3696 */ | |
3697 T_MFW_BT_RESULT_BT bt_set_default_security (U8 security_level) | |
3698 { | |
3699 TRACE_FUNCTION ("bt_set_default_security()"); | |
3700 | |
3701 /* set security level of BT protocol stack for incoming and outgoing | |
3702 connections - this determines the security level needed to access | |
3703 any unregistered services */ | |
3704 | |
3705 switch(btibtp_set_default_security(security_level)) | |
3706 { | |
3707 case BTP_OK: | |
3708 return MFW_BT_OK; | |
3709 case BTP_INVALID_PARAMETER: | |
3710 return MFW_BT_INVALID_PARA; | |
3711 case BTP_NOT_SUPP: | |
3712 return MFW_BT_NO_SUPP; | |
3713 case BTP_NOT_READY: | |
3714 return MFW_BT_NOT_READY; | |
3715 case BTP_INT_ERR: | |
3716 return MFW_BT_INT_ERR; | |
3717 case BTP_MEMORY_ERR: | |
3718 return MFW_BT_MEM_ERR; | |
3719 case BTP_NOK: | |
3720 return MFW_BT_NOK; | |
3721 } | |
3722 } | |
3723 | |
3724 /* | |
3725 +--------------------------------------------------------------------+ | |
3726 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3727 | STATE : code ROUTINE:bt_start_profile_application| | |
3728 +--------------------------------------------------------------------+ | |
3729 | |
3730 PURPOSE : start bluetooth application | |
3731 | |
3732 */ | |
3733 T_MFW_BT_RESULT_BT bt_start_profile_application (T_MFW_BT_SERVICE_TYPE service) | |
3734 { | |
3735 /* start to activate bluetooth profiles, create resources and the profile | |
3736 instance */ | |
3737 | |
3738 TRACE_FUNCTION ("bt_start_profile_application()"); | |
3739 | |
3740 if((service EQ MFW_BT_HEADSET) OR | |
3741 (service EQ MFW_BT_DIAL_UP) OR | |
3742 (service EQ MFW_BT_FAX_GW) OR | |
3743 (service EQ MFW_BT_OPP) OR | |
3744 (service EQ MFW_BT_SYNC) OR | |
3745 (service EQ MFW_BT_PCA_GW)) | |
3746 { | |
3747 switch(btibtp_start((T_BTI_DEVICE_TYPE) service)) | |
3748 { | |
3749 case BTP_OK: | |
3750 return MFW_BT_OK; | |
3751 case BTP_INVALID_PARAMETER: | |
3752 return MFW_BT_INVALID_PARA;/* appli_name is not known by BTE */ | |
3753 case BTP_NOT_READY: | |
3754 return MFW_BT_NOT_READY;/* appli_name is already running */ | |
3755 case BTP_INT_ERR: | |
3756 return MFW_BT_INT_ERR;/* appli_name does not have a get_info function */ | |
3757 case BTP_MEMORY_ERR: | |
3758 return MFW_BT_MEM_ERR;/* problem of memory in BTE */ | |
3759 } | |
3760 } | |
3761 else | |
3762 return MFW_BT_FAIL; | |
3763 } | |
3764 | |
3765 /* | |
3766 +--------------------------------------------------------------------+ | |
3767 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3768 | STATE : code ROUTINE:bt_stop_profile_application | | |
3769 +--------------------------------------------------------------------+ | |
3770 | |
3771 PURPOSE : start bluetooth application | |
3772 | |
3773 */ | |
3774 T_MFW_BT_RESULT_BT bt_stop_profile_application (T_MFW_BT_SERVICE_TYPE service) | |
3775 { | |
3776 /* start to activate bluetooth profiles, create resources and the profile | |
3777 instance */ | |
3778 | |
3779 TRACE_FUNCTION ("bt_stop_profile_application()"); | |
3780 | |
3781 if((service EQ MFW_BT_HEADSET) OR | |
3782 (service EQ MFW_BT_DIAL_UP) OR | |
3783 (service EQ MFW_BT_FAX_GW) OR | |
3784 (service EQ MFW_BT_OPP) OR | |
3785 (service EQ MFW_BT_SYNC) OR | |
3786 (service EQ MFW_BT_PCA_GW)) | |
3787 { | |
3788 switch(btibtp_stop((T_BTI_DEVICE_TYPE) service)) | |
3789 { | |
3790 case BTP_OK: | |
3791 return MFW_BT_OK; | |
3792 case BTP_INVALID_PARAMETER: | |
3793 return MFW_BT_INVALID_PARA;/* appli_name is not known by BTE */ | |
3794 case BTP_NOT_READY: | |
3795 return MFW_BT_NOT_READY;/* appli_name is already running */ | |
3796 case BTP_INT_ERR: | |
3797 return MFW_BT_INT_ERR;/* appli_name does not have a get_info function */ | |
3798 case BTP_MEMORY_ERR: | |
3799 return MFW_BT_MEM_ERR;/* problem of memory in BTE */ | |
3800 } | |
3801 } | |
3802 else | |
3803 return MFW_BT_FAIL; | |
3804 } | |
3805 | |
3806 /* | |
3807 +--------------------------------------------------------------------+ | |
3808 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3809 | STATE : code ROUTINE : bt_register_sm | | |
3810 +--------------------------------------------------------------------+ | |
3811 | |
3812 PURPOSE : start bluetooth security manager | |
3813 | |
3814 */ | |
3815 T_MFW_BT_RESULT_BT bt_register_sm (void) | |
3816 { | |
3817 TRACE_FUNCTION ("bt_register_sm()"); | |
3818 | |
3819 /* mandatory registration in order to handle requests from SCM - | |
3820 Security Manager - authentication and authorization */ | |
3821 | |
3822 switch(btibtp_register_sm())/* set callback function */ | |
3823 { | |
3824 case BTP_OK: | |
3825 return MFW_BT_OK; | |
3826 case BTP_INVALID_PARAMETER: | |
3827 TRACE_EVENT ("Error:bt_register_sm()"); | |
3828 return MFW_BT_INVALID_PARA; | |
3829 case BTP_NOT_SUPP: | |
3830 return MFW_BT_NO_SUPP; | |
3831 case BTP_NOT_READY: | |
3832 return MFW_BT_NOT_READY; | |
3833 case BTP_INT_ERR: | |
3834 return MFW_BT_INT_ERR; | |
3835 case BTP_MEMORY_ERR: | |
3836 return MFW_BT_MEM_ERR; | |
3837 case BTP_NOK: | |
3838 return MFW_BT_NOK; | |
3839 } | |
3840 } | |
3841 | |
3842 /* | |
3843 +--------------------------------------------------------------------+ | |
3844 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3845 | STATE : code ROUTINE : bt_deregister_sm | | |
3846 +--------------------------------------------------------------------+ | |
3847 | |
3848 PURPOSE : stop bluetooth security manager | |
3849 | |
3850 */ | |
3851 T_MFW_BT_RESULT_BT bt_deregister_sm(void) | |
3852 { | |
3853 TRACE_EVENT ("bt_deregister_sm()"); | |
3854 | |
3855 /* mandatory deregistration */ | |
3856 | |
3857 switch(btibtp_deregister_sm()) | |
3858 { | |
3859 case BTP_OK: | |
3860 return MFW_BT_OK; | |
3861 case BTP_INVALID_PARAMETER: | |
3862 TRACE_EVENT ("Error:bt_deregister_sm()"); | |
3863 return MFW_BT_INVALID_PARA; | |
3864 case BTP_NOT_SUPP: | |
3865 return MFW_BT_NO_SUPP; | |
3866 case BTP_NOT_READY: | |
3867 return MFW_BT_NOT_READY; | |
3868 case BTP_INT_ERR: | |
3869 return MFW_BT_INT_ERR; | |
3870 case BTP_MEMORY_ERR: | |
3871 return MFW_BT_MEM_ERR; | |
3872 case BTP_NOK: | |
3873 return MFW_BT_NOK; | |
3874 } | |
3875 } | |
3876 /* | |
3877 +--------------------------------------------------------------------+ | |
3878 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3879 | STATE : code ROUTINE :bt_opp_put_reply | | |
3880 +--------------------------------------------------------------------+ | |
3881 | |
3882 PURPOSE : reply the put requesting by opp client (about server) | |
3883 */ | |
3884 T_MFW_BT_RESULT_BT bt_opp_put_reply ( T_MFW_BT_SERVICE_TYPE service, | |
3885 T_MFW_BT_SUBTYPE_DEV subtype, | |
3886 T_MFW_BT_OPP_PUT_RES opp_put_res, | |
3887 T_MFW_BT_OPP_OBJECT received_obj) | |
3888 { | |
3889 T_BTI_OPP_OBJECT bti_opp_object; | |
3890 T_BTI_OPP_PUT_RES bti_opp_put_res; | |
3891 | |
3892 TRACE_EVENT ("bt_opp_put_reply()"); | |
3893 | |
3894 memset(&bti_opp_object,0,sizeof(T_BTI_OPP_OBJECT)); | |
3895 | |
3896 if(service EQ MFW_BT_OPP) | |
3897 { | |
3898 if(subtype EQ MFW_BT_SERVER) | |
3899 { | |
3900 /* | |
3901 *** MFW_BT_OPP_CONTINUE : positive response | |
3902 MFW_BT_OPP_R_ENTITY_TOO_L:negative response,the request is too big | |
3903 MFW_BT_OPP_FORBIDDEN: negative response, put is rejected | |
3904 *** | |
3905 */ | |
3906 if(opp_put_res EQ MFW_BT_OPP_CONTINUE) | |
3907 { | |
3908 switch(received_obj.mfw_object_type) | |
3909 { | |
3910 case MFW_BT_BUFFER:/* object will be supposed to be stored in buffer */ | |
3911 bti_opp_object.bt_object_type = BTI_TYPE_BUFFER; | |
3912 bti_opp_object.bt_buffer_start = received_obj.mfw_buffer_start; | |
3913 bti_opp_object.bt_buffer_size = received_obj.mfw_buffer_size; | |
3914 break; | |
3915 case MFW_BT_PATH:/* object will be supposed to be stored in file system */ | |
3916 bti_opp_object.bt_object_type = BTI_TYPE_PATH; | |
3917 bti_opp_object.bt_path = received_obj.mfw_path; | |
3918 break; | |
3919 default: | |
3920 return MFW_BT_FAIL; | |
3921 } | |
3922 bti_opp_object.bt_object_name = received_obj.mfw_object_name; | |
3923 bti_opp_object.bt_object_length = received_obj.mfw_object_length; | |
3924 | |
3925 switch(btibtp_opp_put_resp((T_BTI_OPP_PUT_RES)opp_put_res,bti_opp_object)) | |
3926 { | |
3927 case BTP_OK: | |
3928 return MFW_BT_OK; | |
3929 case BTP_INVALID_PARAMETER: | |
3930 return MFW_BT_INVALID_PARA; | |
3931 case BTP_NOT_SUPP: | |
3932 return MFW_BT_NO_SUPP; | |
3933 case BTP_NOT_READY: | |
3934 return MFW_BT_NOT_READY; | |
3935 case BTP_INT_ERR: | |
3936 return MFW_BT_INT_ERR; | |
3937 case BTP_MEMORY_ERR: | |
3938 return MFW_BT_MEM_ERR; | |
3939 case BTP_NOK: | |
3940 return MFW_BT_NOK; | |
3941 } | |
3942 } | |
3943 else if((opp_put_res EQ MFW_BT_OPP_R_ENTITY_TOO_L) OR | |
3944 (opp_put_res EQ MFW_BT_OPP_FORBIDDEN)) | |
3945 { | |
3946 switch(opp_put_res) | |
3947 { | |
3948 case MFW_BT_OPP_R_ENTITY_TOO_L: | |
3949 bti_opp_put_res = BTI_OPP_TOO_LARGE; | |
3950 break; | |
3951 case MFW_BT_OPP_FORBIDDEN: | |
3952 bti_opp_put_res = BTI_OPP_FORBIDDEN; | |
3953 break; | |
3954 default: | |
3955 return MFW_BT_FAIL; | |
3956 } | |
3957 switch(btibtp_opp_put_resp(bti_opp_put_res,bti_opp_object)) | |
3958 { | |
3959 case BTP_OK: | |
3960 return MFW_BT_OK; | |
3961 case BTP_INVALID_PARAMETER: | |
3962 return MFW_BT_INVALID_PARA; | |
3963 case BTP_NOT_SUPP: | |
3964 return MFW_BT_NO_SUPP; | |
3965 case BTP_NOT_READY: | |
3966 return MFW_BT_NOT_READY; | |
3967 case BTP_INT_ERR: | |
3968 return MFW_BT_INT_ERR; | |
3969 case BTP_MEMORY_ERR: | |
3970 return MFW_BT_MEM_ERR; | |
3971 case BTP_NOK: | |
3972 return MFW_BT_NOK; | |
3973 } | |
3974 } | |
3975 else | |
3976 return MFW_BT_FAIL; | |
3977 } | |
3978 else | |
3979 return MFW_BT_FAIL; | |
3980 } | |
3981 else | |
3982 return MFW_BT_FAIL; | |
3983 } | |
3984 | |
3985 /* | |
3986 +--------------------------------------------------------------------+ | |
3987 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
3988 | STATE : code ROUTINE :bt_opp_push_object | | |
3989 +--------------------------------------------------------------------+ | |
3990 | |
3991 PURPOSE : push an object to OPP server | |
3992 | |
3993 */ | |
3994 T_MFW_BT_RESULT_BT bt_opp_push_object (T_MFW_BT_SERVICE_TYPE service, | |
3995 T_MFW_BT_SUBTYPE_DEV subtype, | |
3996 T_MFW_BT_BD_ADDR server_address[], | |
3997 BOOL mfw_keep_connection, | |
3998 T_MFW_BT_OPP_OBJECT mfw_obj_to_push) | |
3999 { | |
4000 T_BTI_OPP_OBJECT bti_opp_object_to_push; | |
4001 | |
4002 TRACE_FUNCTION ("bt_opp_push_object()"); | |
4003 | |
4004 memset(&bti_opp_object_to_push,0,sizeof(T_BTI_OPP_OBJECT)); | |
4005 | |
4006 if(service EQ MFW_BT_OPP) | |
4007 { | |
4008 if(subtype EQ MFW_BT_CLIENT) | |
4009 { | |
4010 switch(mfw_obj_to_push.mfw_object_type) | |
4011 { | |
4012 case MFW_BT_BUFFER:/* object to be sent is stored in buffer */ | |
4013 bti_opp_object_to_push.bt_object_type = BTI_TYPE_BUFFER; | |
4014 bti_opp_object_to_push.bt_buffer_start = mfw_obj_to_push.mfw_buffer_start; | |
4015 bti_opp_object_to_push.bt_buffer_size = mfw_obj_to_push.mfw_buffer_size; | |
4016 break; | |
4017 case MFW_BT_PATH:/* object to be sent is stored in file system */ | |
4018 bti_opp_object_to_push.bt_object_type = BTI_TYPE_PATH; | |
4019 bti_opp_object_to_push.bt_path = mfw_obj_to_push.mfw_path; | |
4020 break; | |
4021 default: | |
4022 return MFW_BT_FAIL; | |
4023 } | |
4024 /* MIME type of object to be sent */ | |
4025 bti_opp_object_to_push.bt_object_mime_type = mfw_obj_to_push.mfw_object_mime_type; | |
4026 /* name of object to be sent */ | |
4027 bti_opp_object_to_push.bt_object_name = mfw_obj_to_push.mfw_object_name; | |
4028 /* length of object to be sent */ | |
4029 bti_opp_object_to_push.bt_object_length = mfw_obj_to_push.mfw_object_length; | |
4030 | |
4031 switch(btibtp_opp_push_object(bti_opp_object_to_push,server_address,mfw_keep_connection)) | |
4032 { | |
4033 case BTP_OK: | |
4034 return MFW_BT_EXECUTE; | |
4035 case BTP_INVALID_PARAMETER: | |
4036 return MFW_BT_INVALID_PARA; | |
4037 case BTP_NOT_SUPP: | |
4038 return MFW_BT_NO_SUPP; | |
4039 case BTP_NOT_READY: | |
4040 return MFW_BT_NOT_READY; | |
4041 case BTP_INT_ERR: | |
4042 return MFW_BT_INT_ERR; | |
4043 case BTP_MEMORY_ERR: | |
4044 return MFW_BT_MEM_ERR; | |
4045 case BTP_NOK: | |
4046 return MFW_BT_NOK; | |
4047 } | |
4048 } | |
4049 else | |
4050 return MFW_BT_FAIL; | |
4051 } | |
4052 else | |
4053 return MFW_BT_FAIL; | |
4054 } | |
4055 | |
4056 /* | |
4057 +--------------------------------------------------------------------+ | |
4058 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4059 | STATE : code ROUTINE :bt_opp_pull_object | | |
4060 +--------------------------------------------------------------------+ | |
4061 | |
4062 PURPOSE : pull an default server object from OPP server | |
4063 | |
4064 */ | |
4065 T_MFW_BT_RESULT_BT bt_opp_pull_object (T_MFW_BT_SERVICE_TYPE service, | |
4066 T_MFW_BT_SUBTYPE_DEV subtype, | |
4067 T_MFW_BT_BD_ADDR server_address[], | |
4068 BOOL mfw_keep_connection, | |
4069 T_MFW_BT_OPP_OBJECT mfw_obj_to_pull) | |
4070 { | |
4071 T_BTI_OPP_OBJECT bti_opp_object_to_pull; | |
4072 | |
4073 TRACE_FUNCTION ("bt_opp_pull_object()"); | |
4074 | |
4075 memset(&bti_opp_object_to_pull,0,sizeof(T_BTI_OPP_OBJECT)); | |
4076 | |
4077 if(service EQ MFW_BT_OPP) | |
4078 { | |
4079 if(subtype EQ MFW_BT_CLIENT) | |
4080 { | |
4081 switch(mfw_obj_to_pull.mfw_object_type) | |
4082 { | |
4083 case MFW_BT_BUFFER:/* object to be pulled will be supposed to be stored in buffer */ | |
4084 bti_opp_object_to_pull.bt_object_type = BTI_TYPE_BUFFER; | |
4085 bti_opp_object_to_pull.bt_buffer_start = mfw_obj_to_pull.mfw_buffer_start; | |
4086 bti_opp_object_to_pull.bt_buffer_size = mfw_obj_to_pull.mfw_buffer_size; | |
4087 break; | |
4088 case MFW_BT_PATH:/* object to be pulled will be supposed to be stored in file system */ | |
4089 bti_opp_object_to_pull.bt_object_type = BTI_TYPE_PATH; | |
4090 bti_opp_object_to_pull.bt_path = mfw_obj_to_pull.mfw_path; | |
4091 break; | |
4092 default: | |
4093 return MFW_BT_FAIL; | |
4094 } | |
4095 /* MIME type of object to be pulled */ | |
4096 bti_opp_object_to_pull.bt_object_mime_type = mfw_obj_to_pull.mfw_object_mime_type; | |
4097 /* name of object to be pulled */ | |
4098 bti_opp_object_to_pull.bt_object_length = mfw_obj_to_pull.mfw_object_length; | |
4099 /* length of object to be pulled */ | |
4100 bti_opp_object_to_pull.bt_object_name = mfw_obj_to_pull.mfw_object_name; | |
4101 switch(btibtp_opp_pull_object(bti_opp_object_to_pull,server_address,mfw_keep_connection)) | |
4102 { | |
4103 case BTP_OK: | |
4104 return MFW_BT_EXECUTE; | |
4105 case BTP_INVALID_PARAMETER: | |
4106 return MFW_BT_INVALID_PARA; | |
4107 case BTP_NOT_SUPP: | |
4108 return MFW_BT_NO_SUPP; | |
4109 case BTP_NOT_READY: | |
4110 return MFW_BT_NOT_READY; | |
4111 case BTP_INT_ERR: | |
4112 return MFW_BT_INT_ERR; | |
4113 case BTP_MEMORY_ERR: | |
4114 return MFW_BT_MEM_ERR; | |
4115 case BTP_NOK: | |
4116 return MFW_BT_NOK; | |
4117 } | |
4118 } | |
4119 else | |
4120 return MFW_BT_FAIL; | |
4121 } | |
4122 else | |
4123 return MFW_BT_FAIL; | |
4124 } | |
4125 | |
4126 /* | |
4127 +--------------------------------------------------------------------+ | |
4128 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4129 | STATE : code ROUTINE :bt_opp_exch_objects | | |
4130 +--------------------------------------------------------------------+ | |
4131 | |
4132 PURPOSE : exchange business cards with OPP server | |
4133 | |
4134 */ | |
4135 T_MFW_BT_RESULT_BT bt_opp_exch_objects (T_MFW_BT_SERVICE_TYPE service, | |
4136 T_MFW_BT_SUBTYPE_DEV subtype, | |
4137 T_MFW_BT_OPP_OBJECT obj_to_push, | |
4138 T_MFW_BT_OPP_OBJECT obj_to_pull, | |
4139 T_MFW_BT_BD_ADDR server_address[], | |
4140 BOOL mfw_keep_connection) | |
4141 { | |
4142 T_BTI_OPP_OBJECT bti_opp_object_to_pull; | |
4143 T_BTI_OPP_OBJECT bti_opp_object_to_push; | |
4144 | |
4145 TRACE_FUNCTION ("bt_opp_exch_objects()"); | |
4146 | |
4147 memset(&bti_opp_object_to_push,0,sizeof(T_BTI_OPP_OBJECT)); | |
4148 memset(&bti_opp_object_to_pull,0,sizeof(T_BTI_OPP_OBJECT)); | |
4149 | |
4150 if(service EQ MFW_BT_OPP) | |
4151 { | |
4152 if(subtype EQ MFW_BT_CLIENT) | |
4153 { | |
4154 switch(obj_to_push.mfw_object_type) | |
4155 { | |
4156 case MFW_BT_BUFFER:/* object to be pushed is stored in buffer */ | |
4157 bti_opp_object_to_push.bt_object_type = BTI_TYPE_BUFFER; | |
4158 bti_opp_object_to_push.bt_buffer_start = obj_to_push.mfw_buffer_start; | |
4159 bti_opp_object_to_push.bt_buffer_size = obj_to_push.mfw_buffer_size; | |
4160 break; | |
4161 case MFW_BT_PATH:/* object to be pushed is stored in file system */ | |
4162 bti_opp_object_to_push.bt_object_type = BTI_TYPE_PATH; | |
4163 bti_opp_object_to_push.bt_path = obj_to_push.mfw_path; | |
4164 break; | |
4165 default: | |
4166 return MFW_BT_FAIL; | |
4167 } | |
4168 /* MIME type of object to be pushed */ | |
4169 bti_opp_object_to_push.bt_object_mime_type = obj_to_push.mfw_object_mime_type; | |
4170 /* name of object to be pushed */ | |
4171 bti_opp_object_to_push.bt_object_name = obj_to_push.mfw_object_name; | |
4172 /* length of object to be pushed */ | |
4173 bti_opp_object_to_push.bt_object_length = obj_to_push.mfw_object_length; | |
4174 | |
4175 switch(obj_to_pull.mfw_object_type) | |
4176 { | |
4177 case MFW_BT_BUFFER:/* object to be pulled will be supposed to be stored in buffer */ | |
4178 bti_opp_object_to_pull.bt_object_type = BTI_TYPE_BUFFER; | |
4179 bti_opp_object_to_pull.bt_buffer_start = obj_to_pull.mfw_buffer_start; | |
4180 bti_opp_object_to_pull.bt_buffer_size = obj_to_pull.mfw_buffer_size; | |
4181 break; | |
4182 case MFW_BT_PATH:/* object to be pulled will be supposed to be stored in file system */ | |
4183 bti_opp_object_to_pull.bt_object_type = BTI_TYPE_PATH; | |
4184 bti_opp_object_to_pull.bt_path = obj_to_pull.mfw_path; | |
4185 break; | |
4186 default: | |
4187 return MFW_BT_FAIL; | |
4188 } | |
4189 /* MIME type of object to be pulled */ | |
4190 bti_opp_object_to_pull.bt_object_mime_type = obj_to_pull.mfw_object_mime_type; | |
4191 /* length of object to be pulled */ | |
4192 bti_opp_object_to_pull.bt_object_length = obj_to_pull.mfw_object_length; | |
4193 /* name of object to be pulled */ | |
4194 bti_opp_object_to_pull.bt_object_name = obj_to_pull.mfw_object_name; | |
4195 | |
4196 switch(btibtp_opp_exch_objects(bti_opp_object_to_push,bti_opp_object_to_pull, | |
4197 server_address,mfw_keep_connection)) | |
4198 { | |
4199 case BTP_OK: | |
4200 return MFW_BT_EXECUTE; | |
4201 case BTP_INVALID_PARAMETER: | |
4202 return MFW_BT_INVALID_PARA; | |
4203 case BTP_NOT_SUPP: | |
4204 return MFW_BT_NO_SUPP; | |
4205 case BTP_NOT_READY: | |
4206 return MFW_BT_NOT_READY; | |
4207 case BTP_INT_ERR: | |
4208 return MFW_BT_INT_ERR; | |
4209 case BTP_MEMORY_ERR: | |
4210 return MFW_BT_MEM_ERR; | |
4211 case BTP_NOK: | |
4212 return MFW_BT_NOK; | |
4213 } | |
4214 } | |
4215 else | |
4216 return MFW_BT_FAIL; | |
4217 } | |
4218 else | |
4219 return MFW_BT_FAIL; | |
4220 } | |
4221 | |
4222 /* | |
4223 +----------------------------------------------------------------------+ | |
4224 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4225 | STATE : code ROUTINE : bt_syn_s_send_com | | |
4226 +----------------------------------------------------------------------+ | |
4227 | |
4228 PURPOSE : SYNC server send SYN command to SYNC client with | |
4229 SYNC command support | |
4230 | |
4231 */ | |
4232 T_MFW_BT_RESULT_BT bt_syn_s_send_com (T_MFW_BT_SERVICE_TYPE service, | |
4233 T_MFW_BT_SUBTYPE_DEV subtype, | |
4234 T_MFW_BT_SYNC_COMMAND sync_comm, | |
4235 T_MFW_BT_SYN_OBJECT_STORE sync_object, | |
4236 T_MFW_BT_BD_ADDR sync_client_address[]) | |
4237 { | |
4238 T_BTI_SYNC_COMMAND bt_sync_com; | |
4239 T_BTI_SYN_OBJECT_STORE bt_sync_object; | |
4240 | |
4241 TRACE_FUNCTION ("bt_syn_s_send_com()"); | |
4242 | |
4243 bt_sync_object = (T_BTI_SYN_OBJECT_STORE)sync_object; | |
4244 | |
4245 if(service EQ MFW_BT_SYNC) | |
4246 { | |
4247 if(subtype EQ MFW_BT_SERVER) | |
4248 { | |
4249 switch(sync_comm) | |
4250 { | |
4251 case MFW_BT_SYNC_CO_SYNC: | |
4252 /* SYNC server push command: SYNC synchronization initiated by Server */ | |
4253 bt_sync_com = sync_comm; | |
4254 break; | |
4255 case MFW_BT_SYNC_CO_PUT: | |
4256 /* SYNC server push command: PUT */ | |
4257 bt_sync_com = sync_comm; | |
4258 break; | |
4259 default: | |
4260 return MFW_BT_FAIL; | |
4261 } | |
4262 | |
4263 switch(btibtp_sync_ser_send_com(bt_sync_com,bt_sync_object,sync_client_address)) | |
4264 { | |
4265 case BTP_OK: | |
4266 return MFW_BT_EXECUTE; | |
4267 case BTP_INVALID_PARAMETER: | |
4268 return MFW_BT_INVALID_PARA; | |
4269 case BTP_NOT_SUPP: | |
4270 return MFW_BT_NO_SUPP; | |
4271 case BTP_NOT_READY: | |
4272 return MFW_BT_NOT_READY; | |
4273 case BTP_INT_ERR: | |
4274 return MFW_BT_INT_ERR; | |
4275 case BTP_MEMORY_ERR: | |
4276 return MFW_BT_MEM_ERR; | |
4277 case BTP_NOK: | |
4278 return MFW_BT_NOK; | |
4279 } | |
4280 } | |
4281 else | |
4282 return MFW_BT_FAIL; | |
4283 } | |
4284 else | |
4285 return MFW_BT_FAIL; | |
4286 } | |
4287 | |
4288 /* | |
4289 +----------------------------------------------------------------------+ | |
4290 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4291 | STATE : code ROUTINE : bt_syn_s_auth_res | | |
4292 +----------------------------------------------------------------------+ | |
4293 | |
4294 PURPOSE : SYNC server sends authentication response | |
4295 | |
4296 */ | |
4297 T_MFW_BT_RESULT_BT bt_syn_s_auth_res (T_MFW_BT_SERVICE_TYPE service, | |
4298 T_MFW_BT_SUBTYPE_DEV subtype, | |
4299 T_MFW_BT_SYN_PASSWD * mfw_sync_password) | |
4300 { | |
4301 TRACE_FUNCTION ("bt_syn_s_auth_res()"); | |
4302 | |
4303 if(service EQ MFW_BT_SYNC) | |
4304 { | |
4305 if(subtype EQ MFW_BT_SERVER) | |
4306 { | |
4307 if(mfw_sync_password) | |
4308 { | |
4309 switch(btibtp_sync_ser_auth_res(mfw_sync_password)) | |
4310 { | |
4311 case BTP_OK: | |
4312 return MFW_BT_OK; | |
4313 case BTP_INVALID_PARAMETER: | |
4314 return MFW_BT_INVALID_PARA; | |
4315 case BTP_NOT_SUPP: | |
4316 return MFW_BT_NO_SUPP; | |
4317 case BTP_NOT_READY: | |
4318 return MFW_BT_NOT_READY; | |
4319 case BTP_INT_ERR: | |
4320 return MFW_BT_INT_ERR; | |
4321 case BTP_MEMORY_ERR: | |
4322 return MFW_BT_MEM_ERR; | |
4323 case BTP_NOK: | |
4324 return MFW_BT_NOK; | |
4325 } | |
4326 } | |
4327 else | |
4328 return MFW_BT_INVALID_PARA; | |
4329 } | |
4330 else | |
4331 return MFW_BT_FAIL; | |
4332 } | |
4333 else | |
4334 return MFW_BT_FAIL; | |
4335 } | |
4336 | |
4337 /* | |
4338 +----------------------------------------------------------------------+ | |
4339 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4340 | STATE : code ROUTINE : bt_syn_s_sync_terminate | | |
4341 +----------------------------------------------------------------------+ | |
4342 | |
4343 PURPOSE : SYNC server terminates synchronization | |
4344 | |
4345 */ | |
4346 T_MFW_BT_RESULT_BT bt_syn_s_sync_terminate (T_MFW_BT_SERVICE_TYPE service, | |
4347 T_MFW_BT_SUBTYPE_DEV subtype) | |
4348 { | |
4349 TRACE_FUNCTION ("bt_syn_s_sync_terminate()"); | |
4350 | |
4351 if(service EQ MFW_BT_SYNC) | |
4352 { | |
4353 if(subtype EQ MFW_BT_SERVER) | |
4354 { | |
4355 switch(btibtp_sync_syn_terminate()) | |
4356 { | |
4357 case BTP_OK: | |
4358 return MFW_BT_OK; | |
4359 case BTP_INVALID_PARAMETER: | |
4360 return MFW_BT_INVALID_PARA; | |
4361 case BTP_NOT_SUPP: | |
4362 return MFW_BT_NO_SUPP; | |
4363 case BTP_NOT_READY: | |
4364 return MFW_BT_NOT_READY; | |
4365 case BTP_INT_ERR: | |
4366 return MFW_BT_INT_ERR; | |
4367 case BTP_MEMORY_ERR: | |
4368 return MFW_BT_MEM_ERR; | |
4369 case BTP_NOK: | |
4370 return MFW_BT_NOK; | |
4371 } | |
4372 } | |
4373 else | |
4374 return MFW_BT_FAIL; | |
4375 } | |
4376 else | |
4377 return MFW_BT_FAIL; | |
4378 } | |
4379 | |
4380 /* | |
4381 +----------------------------------------------------------------------+ | |
4382 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4383 | STATE : code ROUTINE : bt_syn_s_pull_resp | | |
4384 +----------------------------------------------------------------------+ | |
4385 | |
4386 PURPOSE : SYNC server sends pull request response | |
4387 | |
4388 */ | |
4389 T_MFW_BT_RESULT_BT bt_syn_s_pull_resp (T_MFW_BT_SERVICE_TYPE service, | |
4390 T_MFW_BT_SUBTYPE_DEV subtype, | |
4391 T_MFW_BT_SYNC_OBJECT mfw_syn_pull_obj) | |
4392 { | |
4393 T_BTI_SYNC_OBJECT syn_pull_object; | |
4394 | |
4395 TRACE_FUNCTION ("bt_syn_s_pull_resp()"); | |
4396 | |
4397 memset(&syn_pull_object,0,sizeof(syn_pull_object)); | |
4398 | |
4399 if(service EQ MFW_BT_SYNC) | |
4400 { | |
4401 if(subtype EQ MFW_BT_SERVER) | |
4402 { | |
4403 switch(mfw_syn_pull_obj.mfw_object_type) | |
4404 { | |
4405 case MFW_BT_BUFFER:/* object to be pulled will be supposed to be stored in buffer */ | |
4406 syn_pull_object.bt_object_type = BTI_TYPE_BUFFER; | |
4407 syn_pull_object.bt_buffer_start = mfw_syn_pull_obj.mfw_buffer_start; | |
4408 syn_pull_object.bt_buffer_size = mfw_syn_pull_obj.mfw_buffer_size; | |
4409 break; | |
4410 case MFW_BT_PATH:/* object to be pulled will be supposed to be stored in file system */ | |
4411 syn_pull_object.bt_object_type = BTI_TYPE_PATH; | |
4412 syn_pull_object.bt_path = mfw_syn_pull_obj.mfw_path; | |
4413 break; | |
4414 default: | |
4415 return MFW_BT_FAIL; | |
4416 } | |
4417 /* MIME type of object to be pulled */ | |
4418 syn_pull_object.bt_object_mime_type = mfw_syn_pull_obj.mfw_object_mime_type; | |
4419 /* name of object to be pulled */ | |
4420 syn_pull_object.bt_object_length = mfw_syn_pull_obj.mfw_object_length; | |
4421 /* length of object to be pulled */ | |
4422 syn_pull_object.bt_object_name = mfw_syn_pull_obj.mfw_object_name; | |
4423 | |
4424 switch(btibtp_sync_ser_pull_res(syn_pull_object)) | |
4425 { | |
4426 case BTP_OK: | |
4427 return MFW_BT_OK; | |
4428 case BTP_INVALID_PARAMETER: | |
4429 return MFW_BT_INVALID_PARA; | |
4430 case BTP_NOT_SUPP: | |
4431 return MFW_BT_NO_SUPP; | |
4432 case BTP_NOT_READY: | |
4433 return MFW_BT_NOT_READY; | |
4434 case BTP_INT_ERR: | |
4435 return MFW_BT_INT_ERR; | |
4436 case BTP_MEMORY_ERR: | |
4437 return MFW_BT_MEM_ERR; | |
4438 case BTP_NOK: | |
4439 return MFW_BT_NOK; | |
4440 } | |
4441 } | |
4442 else | |
4443 return MFW_BT_FAIL; | |
4444 } | |
4445 else | |
4446 return MFW_BT_FAIL; | |
4447 } | |
4448 | |
4449 /* | |
4450 +----------------------------------------------------------------------+ | |
4451 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4452 | STATE : code ROUTINE : bt_syn_s_push_resp | | |
4453 +----------------------------------------------------------------------+ | |
4454 | |
4455 PURPOSE : SYNC server sends push request response | |
4456 | |
4457 */ | |
4458 T_MFW_BT_RESULT_BT bt_syn_s_push_resp (T_MFW_BT_SERVICE_TYPE service, | |
4459 T_MFW_BT_SUBTYPE_DEV subtype, | |
4460 T_MFW_BT_SYNC_OBJECT mfw_syn_push_obj) | |
4461 { | |
4462 T_BTI_SYNC_OBJECT syn_push_object; | |
4463 | |
4464 TRACE_FUNCTION ("bt_syn_s_push_resp()"); | |
4465 | |
4466 memset(&syn_push_object,0,sizeof(syn_push_object)); | |
4467 | |
4468 if(service EQ MFW_BT_SYNC) | |
4469 { | |
4470 if(subtype EQ MFW_BT_SERVER) | |
4471 { | |
4472 switch(mfw_syn_push_obj.mfw_object_type) | |
4473 { | |
4474 case MFW_BT_BUFFER:/* object to be pulled will be supposed to be stored in buffer */ | |
4475 syn_push_object.bt_object_type = BTI_TYPE_BUFFER; | |
4476 syn_push_object.bt_buffer_start = mfw_syn_push_obj.mfw_buffer_start; | |
4477 syn_push_object.bt_buffer_size = mfw_syn_push_obj.mfw_buffer_size; | |
4478 break; | |
4479 case MFW_BT_PATH:/* object to be pulled will be supposed to be stored in file system */ | |
4480 syn_push_object.bt_object_type = BTI_TYPE_PATH; | |
4481 syn_push_object.bt_path = mfw_syn_push_obj.mfw_path; | |
4482 break; | |
4483 default: | |
4484 return MFW_BT_FAIL; | |
4485 } | |
4486 /* MIME type of object to be pulled */ | |
4487 syn_push_object.bt_object_mime_type = mfw_syn_push_obj.mfw_object_mime_type; | |
4488 /* name of object to be pulled */ | |
4489 syn_push_object.bt_object_length = mfw_syn_push_obj.mfw_object_length; | |
4490 /* length of object to be pulled */ | |
4491 syn_push_object.bt_object_name = mfw_syn_push_obj.mfw_object_name; | |
4492 | |
4493 switch(btibtp_sync_ser_push_res(syn_push_object)) | |
4494 { | |
4495 case BTP_OK: | |
4496 return MFW_BT_EXECUTE; | |
4497 case BTP_INVALID_PARAMETER: | |
4498 return MFW_BT_INVALID_PARA; | |
4499 case BTP_NOT_SUPP: | |
4500 return MFW_BT_NO_SUPP; | |
4501 case BTP_NOT_READY: | |
4502 return MFW_BT_NOT_READY; | |
4503 case BTP_INT_ERR: | |
4504 return MFW_BT_INT_ERR; | |
4505 case BTP_MEMORY_ERR: | |
4506 return MFW_BT_MEM_ERR; | |
4507 case BTP_NOK: | |
4508 return MFW_BT_NOK; | |
4509 } | |
4510 } | |
4511 else | |
4512 return MFW_BT_FAIL; | |
4513 } | |
4514 else | |
4515 return MFW_BT_FAIL; | |
4516 } | |
4517 | |
4518 /* BT CTRL */ | |
4519 | |
4520 /* | |
4521 +----------------------------------------------------------------------+ | |
4522 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4523 | STATE : code ROUTINE : | | |
4524 +----------------------------------------------------------------------+ | |
4525 | |
4526 PURPOSE : | |
4527 */ | |
4528 T_MFW_BT_RESULT_BT bt_set_conn_mode(T_MFW_BT_CONNECTABLE_MODE cmode, | |
4529 UINT16 scan_interval, | |
4530 UINT16 scan_window) | |
4531 { | |
4532 TRACE_FUNCTION ("bt_set_conn_mode()"); | |
4533 | |
4534 switch(btibtp_set_conn_mode(cmode, scan_interval, scan_window)) | |
4535 { | |
4536 case BTP_OK: | |
4537 return MFW_BT_OK; | |
4538 case BTP_INVALID_PARAMETER: | |
4539 return MFW_BT_INVALID_PARA; | |
4540 case BTP_NOT_SUPP: | |
4541 return MFW_BT_NO_SUPP; | |
4542 case BTP_NOT_READY: | |
4543 return MFW_BT_NOT_READY; | |
4544 case BTP_INT_ERR: | |
4545 return MFW_BT_INT_ERR; | |
4546 case BTP_MEMORY_ERR: | |
4547 return MFW_BT_MEM_ERR; | |
4548 case BTP_NOK: | |
4549 return MFW_BT_NOK; | |
4550 } | |
4551 | |
4552 } | |
4553 | |
4554 | |
4555 /* | |
4556 +----------------------------------------------------------------------+ | |
4557 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4558 | STATE : code ROUTINE : | | |
4559 +----------------------------------------------------------------------+ | |
4560 | |
4561 PURPOSE : | |
4562 */ | |
4563 T_MFW_BT_RESULT_BT bt_set_disc_mode(T_MFW_BT_DISCOVERABLE_MODE dmode, | |
4564 UINT16 scan_interval, | |
4565 UINT16 scan_window) | |
4566 { | |
4567 TRACE_FUNCTION ("bt_set_disc_mode()"); | |
4568 | |
4569 switch(btibtp_set_disc_mode(dmode, scan_interval, scan_window)) | |
4570 { | |
4571 case BTP_OK: | |
4572 return MFW_BT_OK; | |
4573 case BTP_INVALID_PARAMETER: | |
4574 return MFW_BT_INVALID_PARA; | |
4575 case BTP_NOT_SUPP: | |
4576 return MFW_BT_NO_SUPP; | |
4577 case BTP_NOT_READY: | |
4578 return MFW_BT_NOT_READY; | |
4579 case BTP_INT_ERR: | |
4580 return MFW_BT_INT_ERR; | |
4581 case BTP_MEMORY_ERR: | |
4582 return MFW_BT_MEM_ERR; | |
4583 case BTP_NOK: | |
4584 return MFW_BT_NOK; | |
4585 } | |
4586 } | |
4587 | |
4588 /* | |
4589 +----------------------------------------------------------------------+ | |
4590 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4591 | STATE : code ROUTINE : | | |
4592 +----------------------------------------------------------------------+ | |
4593 | |
4594 PURPOSE : | |
4595 */ | |
4596 T_MFW_BT_RESULT_BT bt_get_local_name(void) | |
4597 { | |
4598 TRACE_FUNCTION ("bt_get_local_name()"); | |
4599 | |
4600 switch(btibtp_get_local_name()) | |
4601 { | |
4602 case BTP_OK: | |
4603 return MFW_BT_OK; | |
4604 case BTP_INVALID_PARAMETER: | |
4605 return MFW_BT_INVALID_PARA; | |
4606 case BTP_NOT_SUPP: | |
4607 return MFW_BT_NO_SUPP; | |
4608 case BTP_NOT_READY: | |
4609 return MFW_BT_NOT_READY; | |
4610 case BTP_INT_ERR: | |
4611 return MFW_BT_INT_ERR; | |
4612 case BTP_MEMORY_ERR: | |
4613 return MFW_BT_MEM_ERR; | |
4614 case BTP_NOK: | |
4615 return MFW_BT_NOK; | |
4616 } | |
4617 } | |
4618 | |
4619 /* | |
4620 +----------------------------------------------------------------------+ | |
4621 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4622 | STATE : code ROUTINE : | | |
4623 +----------------------------------------------------------------------+ | |
4624 | |
4625 PURPOSE : | |
4626 */ | |
4627 T_MFW_BT_RESULT_BT bt_set_local_name(T_MFW_BT_BD_NAME name[]) | |
4628 { | |
4629 TRACE_FUNCTION ("bt_set_local_name()"); | |
4630 | |
4631 switch(btibtp_set_local_name(name)) | |
4632 { | |
4633 case BTP_OK: | |
4634 return MFW_BT_OK; | |
4635 case BTP_INVALID_PARAMETER: | |
4636 return MFW_BT_INVALID_PARA; | |
4637 case BTP_NOT_SUPP: | |
4638 return MFW_BT_NO_SUPP; | |
4639 case BTP_NOT_READY: | |
4640 return MFW_BT_NOT_READY; | |
4641 case BTP_INT_ERR: | |
4642 return MFW_BT_INT_ERR; | |
4643 case BTP_MEMORY_ERR: | |
4644 return MFW_BT_MEM_ERR; | |
4645 case BTP_NOK: | |
4646 return MFW_BT_NOK; | |
4647 } | |
4648 } | |
4649 | |
4650 /* | |
4651 +----------------------------------------------------------------------+ | |
4652 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4653 | STATE : code ROUTINE : | | |
4654 +----------------------------------------------------------------------+ | |
4655 | |
4656 PURPOSE : | |
4657 */ | |
4658 T_MFW_BT_RESULT_BT bt_get_bd_addr(void) | |
4659 { | |
4660 TRACE_FUNCTION ("bt_get_bd_addr()"); | |
4661 | |
4662 switch(btibtp_get_bd_addr()) | |
4663 { | |
4664 case BTP_OK: | |
4665 return MFW_BT_OK; | |
4666 case BTP_INVALID_PARAMETER: | |
4667 return MFW_BT_INVALID_PARA; | |
4668 case BTP_NOT_SUPP: | |
4669 return MFW_BT_NO_SUPP; | |
4670 case BTP_NOT_READY: | |
4671 return MFW_BT_NOT_READY; | |
4672 case BTP_INT_ERR: | |
4673 return MFW_BT_INT_ERR; | |
4674 case BTP_MEMORY_ERR: | |
4675 return MFW_BT_MEM_ERR; | |
4676 case BTP_NOK: | |
4677 return MFW_BT_NOK; | |
4678 } | |
4679 } | |
4680 | |
4681 /* | |
4682 +----------------------------------------------------------------------+ | |
4683 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4684 | STATE : code ROUTINE : | | |
4685 +----------------------------------------------------------------------+ | |
4686 | |
4687 PURPOSE : | |
4688 */ | |
4689 T_MFW_BT_RESULT_BT bt_get_remote_dev_info(T_MFW_BT_BD_ADDR bd_addr[]) | |
4690 { | |
4691 TRACE_FUNCTION ("bt_get_remote_dev_info()"); | |
4692 | |
4693 switch(btibtp_get_remote_dev_info(bd_addr)) | |
4694 { | |
4695 case BTP_OK: | |
4696 return MFW_BT_OK; | |
4697 case BTP_INVALID_PARAMETER: | |
4698 return MFW_BT_INVALID_PARA; | |
4699 case BTP_NOT_SUPP: | |
4700 return MFW_BT_NO_SUPP; | |
4701 case BTP_NOT_READY: | |
4702 return MFW_BT_NOT_READY; | |
4703 case BTP_INT_ERR: | |
4704 return MFW_BT_INT_ERR; | |
4705 case BTP_MEMORY_ERR: | |
4706 return MFW_BT_MEM_ERR; | |
4707 case BTP_NOK: | |
4708 return MFW_BT_NOK; | |
4709 } | |
4710 } | |
4711 | |
4712 /* | |
4713 +----------------------------------------------------------------------+ | |
4714 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4715 | STATE : code ROUTINE : | | |
4716 +----------------------------------------------------------------------+ | |
4717 | |
4718 PURPOSE : | |
4719 */ | |
4720 T_MFW_BT_RESULT_BT bt_start_btctrl(void) | |
4721 { | |
4722 TRACE_FUNCTION ("bt_start_btctrl()"); | |
4723 | |
4724 switch(btibtp_start_btctrl()) | |
4725 { | |
4726 case BTP_OK: | |
4727 return MFW_BT_OK; | |
4728 case BTP_INVALID_PARAMETER: | |
4729 return MFW_BT_INVALID_PARA; | |
4730 case BTP_NOT_SUPP: | |
4731 return MFW_BT_NO_SUPP; | |
4732 case BTP_NOT_READY: | |
4733 return MFW_BT_NOT_READY; | |
4734 case BTP_INT_ERR: | |
4735 return MFW_BT_INT_ERR; | |
4736 case BTP_MEMORY_ERR: | |
4737 return MFW_BT_MEM_ERR; | |
4738 case BTP_NOK: | |
4739 return MFW_BT_NOK; | |
4740 } | |
4741 } | |
4742 | |
4743 /* | |
4744 +----------------------------------------------------------------------+ | |
4745 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4746 | STATE : code ROUTINE : | | |
4747 +----------------------------------------------------------------------+ | |
4748 | |
4749 PURPOSE : | |
4750 */ | |
4751 T_MFW_BT_RESULT_BT bt_stop_btctrl(void) | |
4752 { | |
4753 TRACE_FUNCTION ("bt_stop_btctrl()"); | |
4754 | |
4755 switch(btibtp_stop_btctrl()) | |
4756 { | |
4757 case BTP_OK: | |
4758 return MFW_BT_OK; | |
4759 case BTP_INVALID_PARAMETER: | |
4760 return MFW_BT_INVALID_PARA; | |
4761 case BTP_NOT_SUPP: | |
4762 return MFW_BT_NO_SUPP; | |
4763 case BTP_NOT_READY: | |
4764 return MFW_BT_NOT_READY; | |
4765 case BTP_INT_ERR: | |
4766 return MFW_BT_INT_ERR; | |
4767 case BTP_MEMORY_ERR: | |
4768 return MFW_BT_MEM_ERR; | |
4769 case BTP_NOK: | |
4770 return MFW_BT_NOK; | |
4771 } | |
4772 } | |
4773 | |
4774 /* enable profiles */ | |
4775 /* | |
4776 +----------------------------------------------------------------------+ | |
4777 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4778 | STATE : code ROUTINE : | | |
4779 +----------------------------------------------------------------------+ | |
4780 | |
4781 PURPOSE : | |
4782 */ | |
4783 T_MFW_BT_RESULT_BT bt_enable_hsg_profile(void) | |
4784 { | |
4785 TRACE_FUNCTION ("bt_enable_hsg_profile()"); | |
4786 switch(btibtp_enable_hsg_profile()) | |
4787 { | |
4788 case BTP_OK: | |
4789 return MFW_BT_OK; | |
4790 case BTP_INVALID_PARAMETER: | |
4791 return MFW_BT_INVALID_PARA; | |
4792 case BTP_NOT_SUPP: | |
4793 return MFW_BT_NO_SUPP; | |
4794 case BTP_NOT_READY: | |
4795 return MFW_BT_NOT_READY; | |
4796 case BTP_INT_ERR: | |
4797 return MFW_BT_INT_ERR; | |
4798 case BTP_MEMORY_ERR: | |
4799 return MFW_BT_MEM_ERR; | |
4800 case BTP_NOK: | |
4801 return MFW_BT_NOK; | |
4802 } | |
4803 } | |
4804 | |
4805 /* | |
4806 +----------------------------------------------------------------------+ | |
4807 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4808 | STATE : code ROUTINE : | | |
4809 +----------------------------------------------------------------------+ | |
4810 | |
4811 PURPOSE : | |
4812 */ | |
4813 T_MFW_BT_RESULT_BT bt_enable_dun_profile(void) | |
4814 { | |
4815 TRACE_FUNCTION ("bt_enable_dun_profile()"); | |
4816 switch(btibtp_enable_dun_profile()) | |
4817 { | |
4818 case BTP_OK: | |
4819 return MFW_BT_OK; | |
4820 case BTP_INVALID_PARAMETER: | |
4821 return MFW_BT_INVALID_PARA; | |
4822 case BTP_NOT_SUPP: | |
4823 return MFW_BT_NO_SUPP; | |
4824 case BTP_NOT_READY: | |
4825 return MFW_BT_NOT_READY; | |
4826 case BTP_INT_ERR: | |
4827 return MFW_BT_INT_ERR; | |
4828 case BTP_MEMORY_ERR: | |
4829 return MFW_BT_MEM_ERR; | |
4830 case BTP_NOK: | |
4831 return MFW_BT_NOK; | |
4832 } | |
4833 } | |
4834 | |
4835 /* | |
4836 +----------------------------------------------------------------------+ | |
4837 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4838 | STATE : code ROUTINE : | | |
4839 +----------------------------------------------------------------------+ | |
4840 | |
4841 PURPOSE : | |
4842 */ | |
4843 T_MFW_BT_RESULT_BT bt_enable_fax_profile(void) | |
4844 { | |
4845 TRACE_FUNCTION ("bt_enable_fax_profile()"); | |
4846 switch(btibtp_enable_fax_profile()) | |
4847 { | |
4848 case BTP_OK: | |
4849 return MFW_BT_OK; | |
4850 case BTP_INVALID_PARAMETER: | |
4851 return MFW_BT_INVALID_PARA; | |
4852 case BTP_NOT_SUPP: | |
4853 return MFW_BT_NO_SUPP; | |
4854 case BTP_NOT_READY: | |
4855 return MFW_BT_NOT_READY; | |
4856 case BTP_INT_ERR: | |
4857 return MFW_BT_INT_ERR; | |
4858 case BTP_MEMORY_ERR: | |
4859 return MFW_BT_MEM_ERR; | |
4860 case BTP_NOK: | |
4861 return MFW_BT_NOK; | |
4862 } | |
4863 } | |
4864 | |
4865 /* | |
4866 +----------------------------------------------------------------------+ | |
4867 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4868 | STATE : code ROUTINE : | | |
4869 +----------------------------------------------------------------------+ | |
4870 | |
4871 PURPOSE : | |
4872 */ | |
4873 T_MFW_BT_RESULT_BT bt_hsg_client_disable(void) | |
4874 { | |
4875 TRACE_FUNCTION ("bt_hsg_client_disable()"); | |
4876 switch(btibtp_hsg_client_disable()) | |
4877 { | |
4878 case BTP_OK: | |
4879 return MFW_BT_OK; | |
4880 case BTP_INVALID_PARAMETER: | |
4881 return MFW_BT_INVALID_PARA; | |
4882 case BTP_NOT_SUPP: | |
4883 return MFW_BT_NO_SUPP; | |
4884 case BTP_NOT_READY: | |
4885 return MFW_BT_NOT_READY; | |
4886 case BTP_INT_ERR: | |
4887 return MFW_BT_INT_ERR; | |
4888 case BTP_MEMORY_ERR: | |
4889 return MFW_BT_MEM_ERR; | |
4890 case BTP_NOK: | |
4891 return MFW_BT_NOK; | |
4892 } | |
4893 } | |
4894 | |
4895 /* | |
4896 +----------------------------------------------------------------------+ | |
4897 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4898 | STATE : code ROUTINE : | | |
4899 +----------------------------------------------------------------------+ | |
4900 | |
4901 PURPOSE : | |
4902 */ | |
4903 T_MFW_BT_RESULT_BT bt_hsg_server_disable(void) | |
4904 { | |
4905 TRACE_FUNCTION ("bt_hsg_server_disable()"); | |
4906 switch(btibtp_hsg_server_disable()) | |
4907 { | |
4908 case BTP_OK: | |
4909 return MFW_BT_OK; | |
4910 case BTP_INVALID_PARAMETER: | |
4911 return MFW_BT_INVALID_PARA; | |
4912 case BTP_NOT_SUPP: | |
4913 return MFW_BT_NO_SUPP; | |
4914 case BTP_NOT_READY: | |
4915 return MFW_BT_NOT_READY; | |
4916 case BTP_INT_ERR: | |
4917 return MFW_BT_INT_ERR; | |
4918 case BTP_MEMORY_ERR: | |
4919 return MFW_BT_MEM_ERR; | |
4920 case BTP_NOK: | |
4921 return MFW_BT_NOK; | |
4922 } | |
4923 } | |
4924 | |
4925 /* | |
4926 +----------------------------------------------------------------------+ | |
4927 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4928 | STATE : code ROUTINE : | | |
4929 +----------------------------------------------------------------------+ | |
4930 | |
4931 PURPOSE : | |
4932 */ | |
4933 T_MFW_BT_RESULT_BT bt_dun_gw_disable(void) | |
4934 { | |
4935 TRACE_FUNCTION ("bt_dun_gw_disable()"); | |
4936 switch(btibtp_dun_gw_disable()) | |
4937 { | |
4938 case BTP_OK: | |
4939 return MFW_BT_OK; | |
4940 case BTP_INVALID_PARAMETER: | |
4941 return MFW_BT_INVALID_PARA; | |
4942 case BTP_NOT_SUPP: | |
4943 return MFW_BT_NO_SUPP; | |
4944 case BTP_NOT_READY: | |
4945 return MFW_BT_NOT_READY; | |
4946 case BTP_INT_ERR: | |
4947 return MFW_BT_INT_ERR; | |
4948 case BTP_MEMORY_ERR: | |
4949 return MFW_BT_MEM_ERR; | |
4950 case BTP_NOK: | |
4951 return MFW_BT_NOK; | |
4952 } | |
4953 } | |
4954 | |
4955 /* | |
4956 +----------------------------------------------------------------------+ | |
4957 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4958 | STATE : code ROUTINE : | | |
4959 +----------------------------------------------------------------------+ | |
4960 | |
4961 PURPOSE : | |
4962 */ | |
4963 T_MFW_BT_RESULT_BT bt_fax_gw_disable(void) | |
4964 { | |
4965 TRACE_FUNCTION ("bt_fax_gw_disable()"); | |
4966 switch(btibtp_fax_gw_disable()) | |
4967 { | |
4968 case BTP_OK: | |
4969 return MFW_BT_OK; | |
4970 case BTP_INVALID_PARAMETER: | |
4971 return MFW_BT_INVALID_PARA; | |
4972 case BTP_NOT_SUPP: | |
4973 return MFW_BT_NO_SUPP; | |
4974 case BTP_NOT_READY: | |
4975 return MFW_BT_NOT_READY; | |
4976 case BTP_INT_ERR: | |
4977 return MFW_BT_INT_ERR; | |
4978 case BTP_MEMORY_ERR: | |
4979 return MFW_BT_MEM_ERR; | |
4980 case BTP_NOK: | |
4981 return MFW_BT_NOK; | |
4982 } | |
4983 } | |
4984 | |
4985 /* | |
4986 +----------------------------------------------------------------------+ | |
4987 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
4988 | STATE : code ROUTINE : | | |
4989 +----------------------------------------------------------------------+ | |
4990 | |
4991 PURPOSE : | |
4992 */ | |
4993 T_MFW_BT_RESULT_BT bt_opp_client_disable(void) | |
4994 { | |
4995 TRACE_FUNCTION ("bt_opp_client_disable()"); | |
4996 switch(btibtp_opp_client_disable()) | |
4997 { | |
4998 case BTP_OK: | |
4999 return MFW_BT_OK; | |
5000 case BTP_INVALID_PARAMETER: | |
5001 return MFW_BT_INVALID_PARA; | |
5002 case BTP_NOT_SUPP: | |
5003 return MFW_BT_NO_SUPP; | |
5004 case BTP_NOT_READY: | |
5005 return MFW_BT_NOT_READY; | |
5006 case BTP_INT_ERR: | |
5007 return MFW_BT_INT_ERR; | |
5008 case BTP_MEMORY_ERR: | |
5009 return MFW_BT_MEM_ERR; | |
5010 case BTP_NOK: | |
5011 return MFW_BT_NOK; | |
5012 } | |
5013 } | |
5014 | |
5015 /* | |
5016 +----------------------------------------------------------------------+ | |
5017 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
5018 | STATE : code ROUTINE : | | |
5019 +----------------------------------------------------------------------+ | |
5020 | |
5021 PURPOSE : | |
5022 */ | |
5023 T_MFW_BT_RESULT_BT bt_opp_server_disable(void) | |
5024 { | |
5025 TRACE_FUNCTION ("bt_opp_server_disable()"); | |
5026 switch(btibtp_opp_server_disable()) | |
5027 { | |
5028 case BTP_OK: | |
5029 return MFW_BT_OK; | |
5030 case BTP_INVALID_PARAMETER: | |
5031 return MFW_BT_INVALID_PARA; | |
5032 case BTP_NOT_SUPP: | |
5033 return MFW_BT_NO_SUPP; | |
5034 case BTP_NOT_READY: | |
5035 return MFW_BT_NOT_READY; | |
5036 case BTP_INT_ERR: | |
5037 return MFW_BT_INT_ERR; | |
5038 case BTP_MEMORY_ERR: | |
5039 return MFW_BT_MEM_ERR; | |
5040 case BTP_NOK: | |
5041 return MFW_BT_NOK; | |
5042 } | |
5043 } | |
5044 | |
5045 /* | |
5046 +----------------------------------------------------------------------+ | |
5047 | PROJECT : MMI-Framework (8445) MODULE : MFW_BT | | |
5048 | STATE : code ROUTINE : | | |
5049 +----------------------------------------------------------------------+ | |
5050 | |
5051 PURPOSE : | |
5052 */ | |
5053 T_MFW_BT_RESULT_BT bt_syn_server_disable(void) | |
5054 { | |
5055 TRACE_FUNCTION ("bt_syn_server_disable()"); | |
5056 switch(btibtp_syn_server_disable()) | |
5057 { | |
5058 case BTP_OK: | |
5059 return MFW_BT_OK; | |
5060 case BTP_INVALID_PARAMETER: | |
5061 return MFW_BT_INVALID_PARA; | |
5062 case BTP_NOT_SUPP: | |
5063 return MFW_BT_NO_SUPP; | |
5064 case BTP_NOT_READY: | |
5065 return MFW_BT_NOT_READY; | |
5066 case BTP_INT_ERR: | |
5067 return MFW_BT_INT_ERR; | |
5068 case BTP_MEMORY_ERR: | |
5069 return MFW_BT_MEM_ERR; | |
5070 case BTP_NOK: | |
5071 return MFW_BT_NOK; | |
5072 } | |
5073 } | |
5074 | |
5075 /*#ifdef PCA_6350*/ | |
5076 T_MFW_BT_RESULT_BT bt_pca_gw_enable (void) | |
5077 { | |
5078 TRACE_FUNCTION ("bt_pca_gw_enable()"); | |
5079 switch(btibtp_pca_gw_enable()) | |
5080 { | |
5081 case BTP_OK: | |
5082 return MFW_BT_OK; | |
5083 case BTP_INVALID_PARAMETER: | |
5084 return MFW_BT_INVALID_PARA; | |
5085 case BTP_NOT_SUPP: | |
5086 return MFW_BT_NO_SUPP; | |
5087 case BTP_NOT_READY: | |
5088 return MFW_BT_NOT_READY; | |
5089 case BTP_INT_ERR: | |
5090 return MFW_BT_INT_ERR; | |
5091 case BTP_MEMORY_ERR: | |
5092 return MFW_BT_MEM_ERR; | |
5093 case BTP_NOK: | |
5094 return MFW_BT_NOK; | |
5095 } | |
5096 } | |
5097 | |
5098 T_MFW_BT_RESULT_BT bt_pca_gw_config (T_MFW_BT_PCA_CONFIG event_filters) | |
5099 { | |
5100 T_BTI_PCA_CONF events; | |
5101 TRACE_FUNCTION ("bt_pca_gw_config()"); | |
5102 | |
5103 events.link_filter = (T_BTI_PCA_LINK_EVENT)event_filters.link_event; | |
5104 events.call_filter = (T_BTI_PCA_CALL_EVENT)event_filters.call_event; | |
5105 | |
5106 switch(btibtp_pca_gw_config (events)) | |
5107 { | |
5108 case BTP_OK: | |
5109 return MFW_BT_OK; | |
5110 case BTP_INVALID_PARAMETER: | |
5111 return MFW_BT_INVALID_PARA; | |
5112 case BTP_NOT_SUPP: | |
5113 return MFW_BT_NO_SUPP; | |
5114 case BTP_NOT_READY: | |
5115 return MFW_BT_NOT_READY; | |
5116 case BTP_INT_ERR: | |
5117 return MFW_BT_INT_ERR; | |
5118 case BTP_MEMORY_ERR: | |
5119 return MFW_BT_MEM_ERR; | |
5120 case BTP_NOK: | |
5121 return MFW_BT_NOK; | |
5122 } | |
5123 } | |
5124 | |
5125 T_MFW_BT_RESULT_BT bt_pca_gw_security (UINT8 security_level) | |
5126 { | |
5127 TRACE_FUNCTION ("bt_pca_gw_security()"); | |
5128 switch(btibtp_pca_gw_security (security_level)) | |
5129 { | |
5130 case BTP_OK: | |
5131 return MFW_BT_OK; | |
5132 case BTP_INVALID_PARAMETER: | |
5133 return MFW_BT_INVALID_PARA; | |
5134 case BTP_NOT_SUPP: | |
5135 return MFW_BT_NO_SUPP; | |
5136 case BTP_NOT_READY: | |
5137 return MFW_BT_NOT_READY; | |
5138 case BTP_INT_ERR: | |
5139 return MFW_BT_INT_ERR; | |
5140 case BTP_MEMORY_ERR: | |
5141 return MFW_BT_MEM_ERR; | |
5142 case BTP_NOK: | |
5143 return MFW_BT_NOK; | |
5144 } | |
5145 } | |
5146 | |
5147 T_MFW_BT_RESULT_BT bt_pca_gw_hangup (void) | |
5148 { | |
5149 TRACE_FUNCTION ("bt_pca_gw_hangup()"); | |
5150 switch(btibtp_pca_gw_hangup()) | |
5151 { | |
5152 case BTP_OK: | |
5153 return MFW_BT_OK; | |
5154 case BTP_INVALID_PARAMETER: | |
5155 return MFW_BT_INVALID_PARA; | |
5156 case BTP_NOT_SUPP: | |
5157 return MFW_BT_NO_SUPP; | |
5158 case BTP_NOT_READY: | |
5159 return MFW_BT_NOT_READY; | |
5160 case BTP_INT_ERR: | |
5161 return MFW_BT_INT_ERR; | |
5162 case BTP_MEMORY_ERR: | |
5163 return MFW_BT_MEM_ERR; | |
5164 case BTP_NOK: | |
5165 return MFW_BT_NOK; | |
5166 } | |
5167 } | |
5168 | |
5169 T_MFW_BT_RESULT_BT bt_pca_gw_disable (void) | |
5170 { | |
5171 TRACE_FUNCTION ("bt_pca_gw_disable()"); | |
5172 switch(btibtp_pca_gw_disable()) | |
5173 { | |
5174 case BTP_OK: | |
5175 return MFW_BT_OK; | |
5176 case BTP_INVALID_PARAMETER: | |
5177 return MFW_BT_INVALID_PARA; | |
5178 case BTP_NOT_SUPP: | |
5179 return MFW_BT_NO_SUPP; | |
5180 case BTP_NOT_READY: | |
5181 return MFW_BT_NOT_READY; | |
5182 case BTP_INT_ERR: | |
5183 return MFW_BT_INT_ERR; | |
5184 case BTP_MEMORY_ERR: | |
5185 return MFW_BT_MEM_ERR; | |
5186 case BTP_NOK: | |
5187 return MFW_BT_NOK; | |
5188 } | |
5189 } | |
5190 | |
5191 | |
5192 /*#endif*/ /* PCA_6350 */ | |
5193 | |
5194 | |
5195 /* Cartman added begin */ | |
5196 | |
5197 T_MFW_BT_RESULT_BT bt_hsg_connect_network (T_MFW_BT_HSG_CONNECT_NETWORK_ANSWER network_answer, | |
5198 T_MFW_BT_HSG_CONNECT_NETWORK_TYPE network_type, | |
5199 T_MFW_BT_HSG_PHONE_NUMBER phone_nb[]) | |
5200 { | |
5201 TRACE_FUNCTION ("bt_hsg_connect_network()"); | |
5202 switch(btibtp_hsg_connect_network(network_answer,network_type,phone_nb)) | |
5203 { | |
5204 case BTP_OK: | |
5205 return MFW_BT_EXECUTE; | |
5206 case BTP_INVALID_PARAMETER: | |
5207 return MFW_BT_INVALID_PARA; | |
5208 case BTP_NOT_SUPP: | |
5209 return MFW_BT_NO_SUPP; | |
5210 case BTP_NOT_READY: | |
5211 return MFW_BT_NOT_READY; | |
5212 case BTP_INT_ERR: | |
5213 return MFW_BT_INT_ERR; | |
5214 case BTP_MEMORY_ERR: | |
5215 return MFW_BT_MEM_ERR; | |
5216 case BTP_NOK: | |
5217 return MFW_BT_NOK; | |
5218 } | |
5219 } | |
5220 | |
5221 | |
5222 T_MFW_BT_RESULT_BT bt_hsg_send_specific_cmd_to_hs (T_MFW_BT_HSG_SPECIFIC_CMD_TYPE command_type, | |
5223 T_MFW_BT_HSG_CMD_TO_HS cmd[]) | |
5224 { | |
5225 TRACE_FUNCTION ("bt_hsg_send_specific_cmd_to_hs()"); | |
5226 switch(btibtp_hsg_send_specific_cmd_to_hs(command_type,cmd)) | |
5227 { | |
5228 case BTP_OK: | |
5229 return MFW_BT_EXECUTE; | |
5230 case BTP_INVALID_PARAMETER: | |
5231 return MFW_BT_INVALID_PARA; | |
5232 case BTP_NOT_SUPP: | |
5233 return MFW_BT_NO_SUPP; | |
5234 case BTP_NOT_READY: | |
5235 return MFW_BT_NOT_READY; | |
5236 case BTP_INT_ERR: | |
5237 return MFW_BT_INT_ERR; | |
5238 case BTP_MEMORY_ERR: | |
5239 return MFW_BT_MEM_ERR; | |
5240 case BTP_NOK: | |
5241 return MFW_BT_NOK; | |
5242 } | |
5243 } | |
5244 | |
5245 | |
5246 T_MFW_BT_RESULT_BT bt_dun_gw_security (UINT8 security_level) | |
5247 { | |
5248 TRACE_FUNCTION ("bt_dun_gw_security()"); | |
5249 switch(btibtp_dun_gw_security (security_level)) | |
5250 { | |
5251 case BTP_OK: | |
5252 return MFW_BT_OK; | |
5253 case BTP_INVALID_PARAMETER: | |
5254 return MFW_BT_INVALID_PARA; | |
5255 case BTP_NOT_SUPP: | |
5256 return MFW_BT_NO_SUPP; | |
5257 case BTP_NOT_READY: | |
5258 return MFW_BT_NOT_READY; | |
5259 case BTP_INT_ERR: | |
5260 return MFW_BT_INT_ERR; | |
5261 case BTP_MEMORY_ERR: | |
5262 return MFW_BT_MEM_ERR; | |
5263 case BTP_NOK: | |
5264 return MFW_BT_NOK; | |
5265 } | |
5266 } | |
5267 | |
5268 | |
5269 T_MFW_BT_RESULT_BT bt_opp_client_security (UINT8 security_level) | |
5270 { | |
5271 TRACE_FUNCTION ("bt_opp_client_security()"); | |
5272 switch(btibtp_opp_client_security (security_level)) | |
5273 { | |
5274 case BTP_OK: | |
5275 return MFW_BT_OK; | |
5276 case BTP_INVALID_PARAMETER: | |
5277 return MFW_BT_INVALID_PARA; | |
5278 case BTP_NOT_SUPP: | |
5279 return MFW_BT_NO_SUPP; | |
5280 case BTP_NOT_READY: | |
5281 return MFW_BT_NOT_READY; | |
5282 case BTP_INT_ERR: | |
5283 return MFW_BT_INT_ERR; | |
5284 case BTP_MEMORY_ERR: | |
5285 return MFW_BT_MEM_ERR; | |
5286 case BTP_NOK: | |
5287 return MFW_BT_NOK; | |
5288 } | |
5289 } | |
5290 | |
5291 | |
5292 T_MFW_BT_RESULT_BT bt_opp_server_security (UINT8 security_level) | |
5293 { | |
5294 TRACE_FUNCTION ("bt_opp_server_security()"); | |
5295 switch(btibtp_opp_server_security (security_level)) | |
5296 { | |
5297 case BTP_OK: | |
5298 return MFW_BT_OK; | |
5299 case BTP_INVALID_PARAMETER: | |
5300 return MFW_BT_INVALID_PARA; | |
5301 case BTP_NOT_SUPP: | |
5302 return MFW_BT_NO_SUPP; | |
5303 case BTP_NOT_READY: | |
5304 return MFW_BT_NOT_READY; | |
5305 case BTP_INT_ERR: | |
5306 return MFW_BT_INT_ERR; | |
5307 case BTP_MEMORY_ERR: | |
5308 return MFW_BT_MEM_ERR; | |
5309 case BTP_NOK: | |
5310 return MFW_BT_NOK; | |
5311 } | |
5312 } | |
5313 | |
5314 | |
5315 /* Cartman added end */ |