FreeCalypso > hg > fc-magnetite
comparison src/ui3/bmi/mmiBtipsA2dp.c @ 420:e8ddbb0837ed
src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Jan 2018 03:09:00 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
419:59143cd42ec7 | 420:e8ddbb0837ed |
---|---|
1 /* ========================================================= | |
2 * Texas Instruments OMAP(TM) Platform Software | |
3 * (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. | |
4 * | |
5 * Use of this software is controlled by the terms and conditions found | |
6 * in the license agreement under which this software has been supplied. | |
7 * ========================================================== */ | |
8 /* | |
9 $Project name: Basic Bluetooth MMI | |
10 $Project code: | |
11 $Module: Bluetooth BMG APPlication | |
12 $File: MmiBtipsA2dp.c | |
13 $Revision: 1.0 | |
14 $Author: Texas Instruments | |
15 $Date: 26/06/07 | |
16 | |
17 ******************************************************************************** | |
18 | |
19 Description: | |
20 | |
21 This module provides the BTIPS BMG APPlication functionality. | |
22 | |
23 ******************************************************************************** | |
24 $History: MmiBtipsA2dp.c | |
25 | |
26 26/06/07 Sasken original version | |
27 | |
28 $End | |
29 | |
30 *******************************************************************************/ | |
31 | |
32 | |
33 | |
34 | |
35 /******************************************************************************* | |
36 | |
37 Include files | |
38 | |
39 *******************************************************************************/ | |
40 | |
41 #define ENTITY_MFW | |
42 | |
43 #include <string.h> | |
44 | |
45 /* BTIPS Includes */ | |
46 #include "me.h" | |
47 | |
48 | |
49 #if defined (NEW_FRAME) | |
50 | |
51 #include "typedefs.h" | |
52 #include "vsi.h" | |
53 #include "pei.h" | |
54 #include "custom.h" | |
55 #include "gsm.h" | |
56 #include "prim.h" | |
57 | |
58 #else | |
59 | |
60 #include "STDDEFS.H" | |
61 #include "custom.h" | |
62 #include "gsm.h" | |
63 #include "vsi.h" | |
64 | |
65 #endif | |
66 | |
67 #include "mfw_mfw.h" | |
68 #include "mfw_win.h" | |
69 #include "mfw_icn.h" /* included for mfw_mnu.h */ | |
70 #include "mfw_mnu.h" | |
71 #include "mfw_tim.h" | |
72 #include "mfw_kbd.h" | |
73 #include "mfw_sat.h" /* included for MmiDummy.h, included for MmiMenu.h */ | |
74 #include "MmiBlkLangDB.h" | |
75 #include "mmiColours.h" | |
76 #include "MmiDialogs.h" | |
77 #include "MmiDummy.h" /* included for MmiMenu.h */ | |
78 #include "MmiLists.h" | |
79 #include "MmiMenu.h" | |
80 #include "MmiSoftKeys.h" | |
81 #include "AUIEditor.h" | |
82 #include "MmiMain.h" | |
83 #include "Mmiicons.h" | |
84 #include "MmiWindow.h" | |
85 #include "MmiCall.h" | |
86 #include "mmiBookShared.h" | |
87 | |
88 #include "mmiBtips.h" | |
89 #include "mfw_btips.h" | |
90 #include "mfw_BtipsA2dp.h" | |
91 #include "mmiBtipsA2dp.h" | |
92 #include "mfw_BtipsBmg.h" | |
93 #include "mmiBtipsBmg.h" | |
94 #include "btl_a2dp.h" | |
95 | |
96 | |
97 int a2dp_files_count; | |
98 extern BtlA2dpStreamId streamId; | |
99 //Array to load fileNames in content directory | |
100 char* a2dp_file_names[A2DP_MAX_FILES]; | |
101 char* szSelectedFileExt; | |
102 char szSelectedFileName[256]; | |
103 #define A2DP_INFO_SCRN_TIMEOUT 1500//Timeout for InfoDialog | |
104 T_MFW_HND hA2dpDeviceWnd; | |
105 | |
106 #define A2DP_BMG_DEVICES_EXIT_WIN 5 | |
107 | |
108 | |
109 #ifdef FF_MMI_BTIPS_APP | |
110 | |
111 static T_MFW_HND mmi_btips_a2dpBuildMenu( MfwHnd parent_window); | |
112 static int mmi_btips_a2dpWinCb (MfwEvt e, MfwWin *w) ; | |
113 | |
114 static void mmi_btips_a2dpListMenuCb(T_MFW_HND Parent, ListMenuData * ListData); | |
115 static void mmi_btips_a2dpListMenuDestroy(MfwHnd window); | |
116 static MfwHnd mmi_btips_a2dpShowInfoDlg(T_MFW_HND parent, int str1, int str2, | |
117 T_VOID_FUNC callback); | |
118 | |
119 int mmi_btips_a2dpHandler(MfwMnu* m, MfwMnuItem* i) | |
120 { | |
121 T_MFW_HND win; | |
122 T_MFW_HND parent_win = mfw_parent(mfw_header()); | |
123 int numFiles=0; | |
124 | |
125 TRACE_FUNCTION ("mmi_btips_a2dpHandler"); | |
126 //mfw_btips_a2dpInit(); | |
127 a2dp_files_count = A2DP_MAX_FILES; | |
128 a2dp_files_count=mfw_btips_a2dpPopulateFiles(a2dp_file_names,A2DP_MAX_FILES, | |
129 BT_DEMO_FOLDER_PATH); | |
130 TRACE_FUNCTION_P1("mmi_btips_a2dpHandler: a2dp_files_count - %d", a2dp_files_count); | |
131 numFiles = mfw_btips_a2dpGetNumFiles(); | |
132 | |
133 TRACE_FUNCTION_P1("mmi_btips_a2dpHandler FileCount = %d",numFiles); | |
134 | |
135 if(numFiles <= 0) | |
136 { | |
137 mmi_btips_a2dpShowInfoDlg(0, TxtMidiFileNotLoaded, TxtNull, NULL); | |
138 | |
139 } | |
140 else | |
141 { | |
142 win = mmi_btips_a2dpBuildMenu(parent_win); | |
143 if (win NEQ NULL) | |
144 { | |
145 SEND_EVENT (win, BTIPS_A2DP_LIST_INIT, 0, 0); | |
146 } | |
147 | |
148 } | |
149 return MFW_EVENT_CONSUMED; | |
150 | |
151 } | |
152 | |
153 /******************************************************************************* | |
154 | |
155 $Function: mmi_btips_a2dpBuildMenu | |
156 | |
157 $Description: To hold list window | |
158 | |
159 $Returns: Window handle | |
160 | |
161 $Arguments: | |
162 *******************************************************************************/ | |
163 | |
164 static T_MFW_HND mmi_btips_a2dpBuildMenu( MfwHnd parent_window) | |
165 { | |
166 T_MMI_Btips_A2dp_Win_data * data = (T_MMI_Btips_A2dp_Win_data *)mfwAlloc(sizeof (T_MMI_Btips_A2dp_Win_data)); | |
167 T_MFW_WIN * win; | |
168 | |
169 TRACE_FUNCTION ("mmi_btips_a2dpBuildMenu"); | |
170 | |
171 /* | |
172 * Create window handler | |
173 */ | |
174 | |
175 data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_btips_a2dpWinCb); | |
176 if (data->win EQ NULL) | |
177 { | |
178 return NULL; | |
179 } | |
180 | |
181 TRACE_EVENT("list holder window created: " ); | |
182 /* | |
183 * connect the dialog data to the MFW-window | |
184 */ | |
185 | |
186 data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_btips_a2dpExecCb; | |
187 data->mmi_control.data = data; | |
188 win = ((T_MFW_HDR *)data->win)->data; | |
189 win->user = (void *)data; | |
190 data->parent = parent_window; | |
191 winShow(data->win); | |
192 /* | |
193 * return window handle | |
194 */ | |
195 | |
196 return data->win; | |
197 } | |
198 | |
199 | |
200 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
201 // Solution: A window is created to hold list window. When the user presses Back key, the newly | |
202 // created window is deleted along with list window, bringing the control back to Midi options | |
203 // screen. | |
204 /******************************************************************************* | |
205 | |
206 $Function: mmi_btips_a2dpWinCb | |
207 | |
208 $Description: Window event handler | |
209 | |
210 $Returns: MFW_EVENT_REJECTED: | |
211 MFW_EVENT_CONSUMED: | |
212 | |
213 $Arguments: | |
214 | |
215 *******************************************************************************/ | |
216 static int mmi_btips_a2dpWinCb(MfwEvt e, MfwWin *win) | |
217 { | |
218 T_MMI_Btips_A2dp_Win_data *data = (T_MMI_Btips_A2dp_Win_data *)win->user; | |
219 | |
220 TRACE_FUNCTION ("mmi_btips_a2dpWinCb()"); | |
221 switch (e) | |
222 { | |
223 case MfwWinFocussed: /* input focus / selected */ | |
224 TRACE_EVENT("MfwWinFocussed"); | |
225 case MfwWinDelete: /* window will be deleted */ | |
226 TRACE_EVENT("MfwWinDelete"); | |
227 case MfwWinVisible: /* window is visible */ | |
228 TRACE_EVENT("MfwWinVisible"); | |
229 break; | |
230 case MfwWinSuspend: /* window is suspended */ | |
231 TRACE_EVENT("MfwWinSuspend"); | |
232 break; | |
233 case MfwWinResume: /* window is resumed */ | |
234 TRACE_EVENT("MfwWinResume"); | |
235 default: | |
236 return MFW_EVENT_REJECTED; | |
237 } | |
238 return MFW_EVENT_CONSUMED; | |
239 } | |
240 | |
241 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
242 // Solution: A window is created to hold list window. When the user presses Back key, the newly | |
243 // created window is deleted along with list window, bringing the control back to Midi options | |
244 // screen. | |
245 /******************************************************************************* | |
246 | |
247 $Function: mmi_btips_a2dpExecCb | |
248 | |
249 $Description: Call back function | |
250 | |
251 $Returns: none | |
252 | |
253 $Arguments: | |
254 | |
255 *******************************************************************************/ | |
256 void mmi_btips_a2dpExecCb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
257 { | |
258 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
259 T_MMI_Btips_A2dp_Win_data * data = (T_MMI_Btips_A2dp_Win_data *)win_data->user; | |
260 int max_file_number; | |
261 int i; | |
262 | |
263 ListWinInfo * mnu_data = (ListWinInfo *)parameter; | |
264 | |
265 TRACE_FUNCTION ("mmi_btips_a2dpExecCb()"); | |
266 switch (event) | |
267 { | |
268 T_MFW A2dpListCreationStatus; | |
269 case BTIPS_A2DP_LIST_INIT: | |
270 { | |
271 | |
272 TRACE_EVENT(" midi_test_files_exec_cb() Event:E_INIT"); | |
273 | |
274 /* initialization of administrative data */ | |
275 | |
276 data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData)); | |
277 | |
278 if(data->menu_list_data == 0) | |
279 { | |
280 TRACE_EVENT("Failed memory alloc 1 "); | |
281 return; | |
282 } | |
283 | |
284 max_file_number = mfw_btips_a2dpGetNumFiles(); | |
285 //In case no files have been loaded display info message | |
286 //In case no files have been loaded return info message | |
287 if(max_file_number == 0) | |
288 { | |
289 return; | |
290 } | |
291 | |
292 | |
293 data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( max_file_number * sizeof(T_MFW_MNU_ITEM) ); | |
294 | |
295 if(data->menu_list_data->List == 0) | |
296 { | |
297 TRACE_EVENT("Failed memory alloc 2"); | |
298 return; | |
299 } | |
300 for (i = 0; i < max_file_number ; i++) | |
301 { | |
302 mnuInitDataItem(&data->menu_list_data->List[i]); | |
303 data->menu_list_data->List[i].flagFunc = item_flag_none; | |
304 //Display the A2DP file names in the list | |
305 data->menu_list_data->List[i].str = | |
306 (char *)mfw_btips_a2dpGetFileName(data->a2dp_file_count++); | |
307 } | |
308 | |
309 data->menu_list_data->ListLength =max_file_number; | |
310 data->menu_list_data->ListPosition = 1; | |
311 data->menu_list_data->CursorPosition = 1; | |
312 data->menu_list_data->SnapshotSize = max_file_number; | |
313 data->menu_list_data->Font = 0; | |
314 data->menu_list_data->LeftSoftKey = TxtSoftSelect; | |
315 data->menu_list_data->RightSoftKey = TxtSoftBack; | |
316 data->menu_list_data->KeyEvents = KEY_ALL; | |
317 data->menu_list_data->Reason = 0; | |
318 data->menu_list_data->Strings = TRUE; | |
319 data->menu_list_data->Attr = (MfwMnuAttr*)&BtipsA2dpList_Attrib; | |
320 data->menu_list_data->Attr->hdrId = TxtPlayerSelectFile; | |
321 data->menu_list_data->autoDestroy = FALSE; | |
322 A2dpListCreationStatus = | |
323 listDisplayListMenu (win, data->menu_list_data, | |
324 (ListCbFunc)mmi_btips_a2dpListMenuCb,0); | |
325 if (LISTS_OK == A2dpListCreationStatus) | |
326 { | |
327 #if 0 | |
328 /*If control reached this point then List of files are showed on display*/ | |
329 isMidiListON = TRUE; | |
330 /*Create one timer and play the file only if that timer expires*/ | |
331 /*Play the first file if user hasn't pressed the up and down for half a second */ | |
332 mfw_player_currently_playing_idx = 0; | |
333 midiBrowseTimer = timCreate( 0, TIME_HALFSECOND, (MfwCb)midi_test_play_browsing); | |
334 timStart( midiBrowseTimer ); | |
335 #endif | |
336 } | |
337 } | |
338 break; | |
339 default: | |
340 break; | |
341 } | |
342 | |
343 } | |
344 /******************************************************************************* | |
345 | |
346 $Function: midi_mt_menu_list_listmnu_cb | |
347 | |
348 $Description: destroy lists and menu in case of back softkey or menu exit | |
349 | |
350 $Returns: | |
351 | |
352 $Arguments: | |
353 | |
354 *******************************************************************************/ | |
355 static void mmi_btips_a2dpListMenuCb(T_MFW_HND Parent, ListMenuData * ListData) | |
356 { | |
357 T_MFW_WIN *win_data = ((T_MFW_HDR *)Parent)->data; | |
358 T_MMI_Btips_A2dp_Win_data *data = (T_MMI_Btips_A2dp_Win_data *)win_data->user; | |
359 | |
360 TRACE_FUNCTION ("mmi_btips_a2dpListMenuCb()"); | |
361 | |
362 if ((ListData->Reason EQ LISTS_REASON_BACK) || | |
363 (ListData->Reason EQ LISTS_REASON_CLEAR) || | |
364 (ListData->Reason EQ LISTS_REASON_HANGUP)) | |
365 { | |
366 mfw_btips_a2dpCloseStream(); | |
367 /* | |
368 ** Destroy the window --- Not sure if this is required! ... leave it out for now | |
369 */ | |
370 listsDestroy(ListData->win); | |
371 | |
372 /* | |
373 ** Free the memory set aside for ALL the devices to be listed. | |
374 */ | |
375 if (data->menu_list_data != NULL) | |
376 { | |
377 FREE_MEMORY ((void *)data->menu_list_data->List, (U16)(data->a2dp_num_file * sizeof (T_MFW_MNU_ITEM))); | |
378 FREE_MEMORY ((void *)data->menu_list_data, sizeof (ListMenuData)); | |
379 } | |
380 | |
381 mmi_btips_a2dpListMenuDestroy(data->win); | |
382 #if 0 | |
383 // June 19, 2006 REF: DRT OMAPS00076378 x0012849 | |
384 /*At this point the MIDI list is destroyed*/ | |
385 isMidiListON = FALSE; | |
386 /* At this point the play need to be stopped. If user wants the file need to | |
387 be played while going across menu then 'play' or 'play all' need to be selected */ | |
388 midi_stop_player (NULL, NULL); | |
389 if (midiBrowseTimer != NULL) | |
390 { | |
391 // Delete the timer. It's not required any more. | |
392 timDelete (midiBrowseTimer); | |
393 } | |
394 #endif | |
395 } | |
396 else if(ListData->Reason EQ LISTS_REASON_SELECT) | |
397 { | |
398 OS_MemSet(szSelectedFileName, 0, sizeof(szSelectedFileName)); | |
399 OS_StrCpy(szSelectedFileName, BT_DEMO_FOLDER_PATH); | |
400 OS_StrCat(szSelectedFileName, "/"); | |
401 OS_StrCat(szSelectedFileName, mfw_btips_a2dpGetFileName(ListData->CursorPosition)); | |
402 TRACE_EVENT_P1("szSelectedFileName: %s", szSelectedFileName); | |
403 //szSelectedFileName = mfw_btips_a2dpGetFileName(ListData->CursorPosition); | |
404 | |
405 //OS_StrCpy(szSelectedFileName, "/MfwBtDemo/base_fadeout.wav"); | |
406 szSelectedFileExt = mfw_btips_a2dpGetExtension(szSelectedFileName); | |
407 if(streamId >= 0) | |
408 { | |
409 TRACE_EVENT("Closing stream in mmi_btips_a2dpListMenuCb After selecting new file"); | |
410 mfw_btips_a2dpCloseStream(); | |
411 } | |
412 if(FALSE == data->deviceSearchStarted) | |
413 { | |
414 | |
415 data->deviceSearchStarted = TRUE; | |
416 if ( (strcmp(szSelectedFileExt, "mp3") == 0)) | |
417 { | |
418 | |
419 mmi_btips_a2dpDeviceSearchWnd(); | |
420 } | |
421 else if ( (strcmp(szSelectedFileExt, "pcm") == 0)) | |
422 { | |
423 | |
424 mmi_btips_a2dpDeviceSearchWnd(); | |
425 } | |
426 else if ( (strcmp(szSelectedFileExt, "wav") == 0)) | |
427 { | |
428 | |
429 mmi_btips_a2dpDeviceSearchWnd(); | |
430 } | |
431 else | |
432 { | |
433 //It should never come here | |
434 TRACE_ERROR("invalid file name"); | |
435 } | |
436 } | |
437 #if 0 | |
438 TRACE_EVENT_P1("list position is %d",ListData->ListPosition); | |
439 mt_menu_data.mt_list_idx = ListData->ListPosition; | |
440 //call mfw to save selected index | |
441 mfw_player_save_selected_file_idx(mt_menu_data.mt_list_idx); | |
442 //display a "file selected" text here | |
443 mmi_midi_test_show_info(0, TxtMidiFileSelected, TxtNull, NULL); | |
444 #endif | |
445 } | |
446 | |
447 | |
448 return; | |
449 } | |
450 /******************************************************************************* | |
451 | |
452 $Function: mmi_btips_a2dpListMenuDestroy | |
453 | |
454 $Description: destroy menu window | |
455 | |
456 $Returns: | |
457 | |
458 $Arguments: window to be destroyed | |
459 | |
460 *******************************************************************************/ | |
461 static void mmi_btips_a2dpListMenuDestroy(MfwHnd window) | |
462 { | |
463 T_MFW_WIN * win_data = ((T_MFW_HDR *)window)->data; | |
464 T_MMI_Btips_A2dp_Win_data * data = (T_MMI_Btips_A2dp_Win_data *)win_data->user; | |
465 | |
466 TRACE_FUNCTION ("mmi_btips_a2dpListMenuDestroy"); | |
467 | |
468 if (window == NULL) | |
469 { | |
470 return; | |
471 } | |
472 | |
473 if (data) | |
474 { | |
475 win_delete(data->win); | |
476 | |
477 /* | |
478 ** Free Memory | |
479 */ | |
480 mfwFree((void *)data, sizeof (T_MMI_Btips_A2dp_Win_data)); | |
481 } | |
482 } | |
483 /******************************************************************************* | |
484 | |
485 $Function: mmi_btips_a2dpShowInfoDlg | |
486 | |
487 $Description: Display the Dialog | |
488 | |
489 $Returns: | |
490 | |
491 $Arguments: | |
492 | |
493 *******************************************************************************/ | |
494 static MfwHnd mmi_btips_a2dpShowInfoDlg(T_MFW_HND parent, int str1, int str2, T_VOID_FUNC callback) | |
495 { | |
496 T_DISPLAY_DATA display_info; | |
497 | |
498 TRACE_FUNCTION ("mmi_btips_a2dpShowInfoDlg()"); | |
499 | |
500 /* | |
501 ** Create a timed dialog to display the Message "Failed" | |
502 */ | |
503 dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, str1, str2, COLOUR_STATUS); | |
504 dlg_initDisplayData_events( &display_info, callback, A2DP_INFO_SCRN_TIMEOUT, KEY_LEFT | KEY_CLEAR | KEY_HUP); | |
505 | |
506 return info_dialog(parent, &display_info); | |
507 } | |
508 /******************************************************************************* | |
509 | |
510 $Function: mmi_btips_a2dpPlayOnSingleDevice | |
511 | |
512 $Description: | |
513 | |
514 $Returns: | |
515 | |
516 $Arguments: | |
517 | |
518 *******************************************************************************/ | |
519 int mmi_btips_a2dpPlayOnSingleDevice(MfwMnu* m, MfwMnuItem* i) | |
520 { | |
521 T_MFW_HND parent_win = mfwParent(mfw_header()); | |
522 TRACE_FUNCTION("mmi_btips_a2dpPlayOnSingleDevice"); | |
523 mfw_btips_bmgSearch(BTIPS_A2DP_DEVICE_SEARCH); | |
524 return MFW_EVENT_CONSUMED; | |
525 } | |
526 /******************************************************************************* | |
527 | |
528 $Function: mmi_btips_a2dpPlayOnMultipleDevice | |
529 | |
530 $Description: | |
531 | |
532 $Returns: | |
533 | |
534 $Arguments: | |
535 | |
536 *******************************************************************************/ | |
537 int mmi_btips_a2dpPlayOnMultipleDevice(MfwMnu* m, MfwMnuItem* i) | |
538 { | |
539 T_MFW_HND parent_win = mfwParent(mfw_header()); | |
540 //mmi_btips_app_show_info(parent_win,TxtBtipsShowPhone,TxtSelected,ONE_SECS,NULL); | |
541 //mfw_BtipsBmgSetPhoneVisibility(True); | |
542 return MFW_EVENT_CONSUMED; | |
543 } | |
544 | |
545 int mmi_btips_a2dpDeviceSearchWnd() | |
546 { | |
547 T_MFW_HND parent_win = mfwParent(mfw_header()); | |
548 hA2dpDeviceWnd = (T_MFW_HND)mmi_btips_bmg_devices_win_create(parent_win, BTIPS_A2DP_DEVICE_SEARCH, mmi_btips_a2dpDeviceSearchCallback); | |
549 return MFW_EVENT_CONSUMED; | |
550 } | |
551 | |
552 T_MFW_HND mmi_btips_a2dp_ask_cancelStreaming(T_MFW_HND parent, char * str1, char * str2, T_VOID_FUNC callback) | |
553 { | |
554 T_DISPLAY_DATA display_info; | |
555 | |
556 TRACE_FUNCTION("mmi_btips_a2dp_ask_cancelStreaming"); | |
557 dlg_initDisplayData_TextStr( &display_info, TxtNull, TxtStop, str1, str2, COLOUR_STATUS); | |
558 dlg_initDisplayData_events( &display_info, callback, FOREVER, KEY_LEFT|KEY_RIGHT | KEY_CLEAR | KEY_HUP); | |
559 return info_dialog(parent,&display_info); | |
560 } | |
561 | |
562 void mmi_btips_a2dp_streaming_stop_cb(T_MFW_HND win, UBYTE identifier, UBYTE reason) | |
563 { | |
564 | |
565 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
566 T_dialog_info * data = (T_dialog_info *)win_data->user; | |
567 | |
568 T_MFW_WIN *parent_win_data = ((T_MFW_HDR *) data->parent_win)->data; | |
569 /* T_MMI_Btips_Bmg_DevicesWin_data * parent_data = (T_MMI_Btips_Bmg_DevicesWin_data *)parent_win_data->user; | |
570 T_MFW_HND parent_win = parent_data->win; | |
571 */ | |
572 TRACE_FUNCTION_P1("mmi_btips_a2dp_streaming_stop_cb %d", reason); | |
573 | |
574 switch (reason) | |
575 { | |
576 case INFO_KCD_LEFT: | |
577 TRACE_ERROR("No LSK"); | |
578 break; | |
579 case INFO_KCD_HUP: | |
580 case INFO_KCD_RIGHT: | |
581 mfw_btips_a2dpCloseStream(); | |
582 break; | |
583 case INFO_KCD_CLEAR: | |
584 break; | |
585 default: | |
586 break; | |
587 } | |
588 } | |
589 | |
590 | |
591 | |
592 int mmi_btips_a2dpDeviceSearchCallback(BD_ADDR bdAddr) | |
593 { | |
594 T_MFW_HND parent_win = mfwParent(mfw_header()); | |
595 | |
596 BtStatus status; | |
597 static char szDevName[128]; | |
598 SEND_EVENT ( hA2dpDeviceWnd, BTIPS_BMG_DEVICES_EXIT_WIN, 0, (void *)NULL); | |
599 vsi_t_sleep(0, 10); | |
600 mfw_btips_bmgGetDeviceName(&bdAddr, szDevName); | |
601 TRACE_EVENT_P1("mmi_btips_a2dpDeviceSearchCallback with Dev Name %s", szDevName); | |
602 | |
603 /*Now update the state machine so that when user comes back to this menu | |
604 He should be able to STOP playing A2DP OR Select another file to Play*/ | |
605 // mmi_btips_a2dp_ask_cancelStreaming(NULL, "Streaming Audio to", szDevName, mmi_btips_a2dp_streaming_stop_cb); | |
606 status = mfw_btips_a2dpConnectStream(bdAddr); | |
607 return status; | |
608 } | |
609 #endif | |
610 |