FreeCalypso > hg > tcs211-fcmodem
comparison g23m/condat/ms/src/bmi/MmiMidiTest.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 Texas Instruments | |
4 | |
5 ******************************************************************************** | |
6 | |
7 This software product is the property of Texas Instruments and may not be | |
8 disclosed to any third party without the express permission of the owner. | |
9 | |
10 ******************************************************************************** | |
11 | |
12 $Project name: Test MMI | |
13 $Module: MIDI TEST | |
14 $File: MmiMidiTest.c | |
15 $Revision: 1.0 | |
16 | |
17 $Author: Elsa Armanet-Said Texas Instruments Nice | |
18 $Date: 17/05/04 | |
19 | |
20 ******************************************************************************** | |
21 | |
22 Description: | |
23 | |
24 This provides the start code for the MMI | |
25 | |
26 ******************************************************************************** | |
27 $History: MmiMidiTest.c | |
28 | |
29 Nov 23, 2005 REF : DR OMAPS00057378 x0039928 | |
30 Bug: All MIDI files are not displayed in MMI in locosto-lite | |
31 Fix: Buffer memory allocated to copy the file contents is freed | |
32 properly and copying file from FFS to LFS is not terminated if error is | |
33 returned for just any one file, instead it tries to copy other files. | |
34 | |
35 Nov 09, 2005 REF:DR OMAPS00049167 x0039928 | |
36 Description: The midi files cannot be heard if the audio channel selected is 'Mono' | |
37 Solution: Midi Player params are made global so that settings are retained across. | |
38 | |
39 Nov 02, 2005 REF:ER OMAPS00039044 xdeepadh | |
40 Description: Mp3 Ringer Implementation | |
41 Solution: The Midi Ringer application has been enhanced to support mp3 as ringer. | |
42 The interface function names have been modified. | |
43 | |
44 Sep 29,2005 REF: SPR 34407 xdeepadh | |
45 Bug:Back soft key takes more time to return to the previous screen in Midi application | |
46 Fix:The list creation for Midi files has been modified | |
47 | |
48 Aug 29, 2005 REF: SPR 33999 xdeepadh | |
49 Description:Midi Application - Play all files asks for a file to be selected | |
50 Solution: When the files are not selected, the current playing index is set 0. | |
51 | |
52 Apr 05, 2005 REF: ENH 29994 xdeepadh | |
53 Description: Implementation of Generic Midi Ringer and Modification of existing Midi Test Application | |
54 Solution: Generic Midi Ringer and Midi Test Application were implemented. | |
55 | |
56 Dec 08, 2004 REF: CRR MMI-SPR-27284 | |
57 Description: MIDI Player: Back Key malfunctions in MIDI application. | |
58 Solution: A window is created to hold list window. When the user presses Back key, the newly | |
59 created window is deleted along with list window, bringing the control back to Midi options | |
60 screen. | |
61 | |
62 17/05/04 | |
63 | |
64 $End | |
65 | |
66 *******************************************************************************/ | |
67 | |
68 | |
69 | |
70 | |
71 /******************************************************************************* | |
72 | |
73 Include files | |
74 | |
75 *******************************************************************************/ | |
76 #define ENTITY_MFW | |
77 | |
78 /* includes */ | |
79 | |
80 #include <string.h> | |
81 #include <stdio.h> | |
82 #include <stdlib.h> | |
83 | |
84 #include "typedefs.h" | |
85 #include "vsi.h" | |
86 #include "pei.h" | |
87 #include "custom.h" | |
88 | |
89 #if defined (NEW_FRAME) | |
90 | |
91 #include "typedefs.h" | |
92 #include "vsi.h" | |
93 #include "pei.h" | |
94 #include "custom.h" | |
95 #include "gsm.h" | |
96 #include "prim.h" | |
97 | |
98 #else | |
99 | |
100 #include "STDDEFS.H" | |
101 #include "custom.h" | |
102 #include "gsm.h" | |
103 #include "vsi.h" | |
104 | |
105 #endif | |
106 | |
107 #include "message.h" /* included for aci_cmh.h .... */ | |
108 #include "aci_cmh.h" /* included for mfw_sat.h, included for MmiDummy.h, included for MmiMenu.h */ | |
109 | |
110 #include "mfw_mfw.h" | |
111 #include "mfw_win.h" | |
112 #include "mfw_icn.h" /* included for mfw_mnu.h */ | |
113 #include "mfw_mnu.h" | |
114 #include "mfw_tim.h" | |
115 #include "mfw_kbd.h" | |
116 #include "mfw_sat.h" /* included for MmiDummy.h, included for MmiMenu.h */ | |
117 #include "mfw_midi.h" | |
118 | |
119 #include "kpd/kpd_api.h" | |
120 | |
121 #include "MmiBlkLangDB.h" | |
122 #include "mmiColours.h" | |
123 #include "MmiDialogs.h" | |
124 | |
125 #include "MmiDummy.h" /* included for MmiMenu.h */ | |
126 #include "MmiLists.h" | |
127 #include "MmiMenu.h" | |
128 #include "MmiSoftKeys.h" | |
129 #include "AUIEditor.h" | |
130 #include "MmiMidiTest.h" | |
131 #include "MmiMain.h" | |
132 #include "Mmisounds.h" | |
133 | |
134 /******************************************************************************* | |
135 | |
136 internal data | |
137 | |
138 *******************************************************************************/ | |
139 | |
140 /* | |
141 * Internal events | |
142 */ | |
143 #define MT_CREATE_EDITOR 500 | |
144 #define MT_EDITOR_CANCEL 501 | |
145 #define MT_EDITOR_SELECT 502 | |
146 #define MT_NAME_EDITOR 503 | |
147 #define MT_MNU_INIT 504 | |
148 | |
149 /*local defines*/ | |
150 | |
151 #define MT_MAX_EDITOR_LENGTH 4 | |
152 #define MT_INFO_SCRN_TIMEOUT 1500 | |
153 #define MT_MAX_FILES 8 | |
154 | |
155 // Dec 08, 2004 REF: CRR MMI-SPR-27284 | |
156 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
157 // E_INIT event definition | |
158 #define E_INIT 1 | |
159 | |
160 /*editor data structure*/ | |
161 typedef struct{ | |
162 T_MMI_CONTROL mmi_control; | |
163 MfwHnd win; | |
164 MfwHnd mt_win_editor; | |
165 UBYTE mt_buffer[MT_MAX_EDITOR_LENGTH+1]; | |
166 USHORT mt_voice_number; | |
167 } T_MMI_MT_Editor_Data; | |
168 | |
169 /*menu data structure definition*/ | |
170 typedef struct | |
171 { | |
172 T_MMI_CONTROL mmi_control; | |
173 T_MFW_HND win; | |
174 T_MFW_HND kbd; | |
175 T_MFW_HND kbd_long; | |
176 T_MFW_HND mt_menu; | |
177 T_MFW_HND parent; // Dec 08, 2004 REF: CRR MMI-SPR-27284. Member "parent" added | |
178 T_VOID_FUNC func_cb; | |
179 T_VOID_FUNC cancel_cb; | |
180 UBYTE mt_num_file; | |
181 UBYTE mt_file_count; | |
182 ListCbFunc mt_list_cb; | |
183 UBYTE mt_list_idx; | |
184 UBYTE IsMfwInit; | |
185 ListMenuData * menu_list_data; //Sep 29,2005 REF: SPR 34407 xdeepadh | |
186 }T_mt_menu; | |
187 | |
188 /*global menu data*/ | |
189 T_mt_menu mt_menu_data = {0}; | |
190 extern UBYTE mfw_player_exit_flag;//Flag to check playall is selected. | |
191 extern int mfw_player_currently_playing_idx;//Stores the index of the current selected file | |
192 extern UBYTE mfw_player_playback_loop_flag;//Flag to check whether loop is on /off | |
193 // Nov 23, 2005 REF : DR OMAPS00057378 x0039928 | |
194 // IsMidiInit variable decides whether to copy files from FFS to LFS | |
195 extern UBYTE IsMidiInit; | |
196 | |
197 /******************************************************************************* | |
198 | |
199 Local prototypes | |
200 | |
201 *******************************************************************************/ | |
202 static void midi_mt_menu_list_listmnu_cb(T_MFW_HND Parent, ListMenuData * ListData); | |
203 static void mmi_midi_test_editor_cb(T_MFW_HND win, USHORT identifier, SHORT reason); | |
204 //Sep 29,2005 REF: SPR 34407 xdeepadh | |
205 static T_MFW_HND mmi_midi_test_build_Menu( MfwHnd parent_window); | |
206 | |
207 | |
208 /*default static menu*/ | |
209 static MfwMnuAttr menuMtSearchListAttr = | |
210 { | |
211 &menuArea, | |
212 MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ | |
213 -1, /* use default font */ | |
214 NULL, /* with these items (filled in later) */ | |
215 0, /* number of items (filled in leter) */ | |
216 COLOUR_LIST_XX, /* Colour */ | |
217 TxtNull, /* Hdr Id */ | |
218 NULL, /* Background */ | |
219 MNUATTRSPARE /* unused */ | |
220 }; | |
221 | |
222 /******************************************************************************* | |
223 | |
224 $Function: mmi_midi_test_show_info | |
225 | |
226 $Description: Display the Dialog | |
227 | |
228 $Returns: | |
229 | |
230 $Arguments: | |
231 | |
232 *******************************************************************************/ | |
233 static MfwHnd mmi_midi_test_show_info(T_MFW_HND parent, int str1, int str2, T_VOID_FUNC callback) | |
234 { | |
235 T_DISPLAY_DATA display_info; | |
236 | |
237 TRACE_FUNCTION ("mmi_midi_test_show_info()"); | |
238 | |
239 /* | |
240 ** Create a timed dialog to display the Message "Failed" | |
241 */ | |
242 dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, str1, str2, COLOUR_STATUS); | |
243 dlg_initDisplayData_events( &display_info, callback, MT_INFO_SCRN_TIMEOUT, KEY_LEFT | KEY_CLEAR | KEY_HUP); | |
244 | |
245 return info_dialog(parent, &display_info); | |
246 } | |
247 | |
248 | |
249 /******************************************************************************* | |
250 | |
251 $Function: midi_stop_player | |
252 | |
253 $Description:Stops the Midi file playing | |
254 | |
255 $Returns: | |
256 | |
257 $Arguments:m, menu being activated, i, item in menu | |
258 | |
259 *******************************************************************************/ | |
260 GLOBAL int midi_stop_player (MfwMnu* m, MfwMnuItem* i) | |
261 { | |
262 | |
263 TRACE_FUNCTION ("midi_stop_player()"); | |
264 if(mfw_player_exit_flag == PLAYER_EXIT_FLAG_FALSE) | |
265 mfw_player_exit_flag = PLAYER_EXIT_FLAG_TRUE; | |
266 mfw_player_stop(sounds_midi_player_stop_cb); | |
267 return 1; | |
268 } | |
269 | |
270 /******************************************************************************* | |
271 | |
272 $Function: mmi_mt_add_selected_file | |
273 | |
274 $Description: display info message to let user know that file was selected | |
275 | |
276 $Returns: MFW_EVENT_CONSUMED | |
277 | |
278 $Arguments: | |
279 | |
280 *******************************************************************************/ | |
281 static int mmi_mt_add_selected_file(MfwMnu* m, MfwMnuItem* i) | |
282 { | |
283 mmi_midi_test_show_info(0, TxtMidiFileSelected, TxtNull, NULL); | |
284 return MFW_EVENT_CONSUMED; | |
285 } | |
286 | |
287 | |
288 /******************************************************************************* | |
289 | |
290 $Function: mmi_midi_test_editor_cb | |
291 | |
292 $Description: This function provides the callback functionality to an editor for Midi test | |
293 | |
294 $Returns: None | |
295 | |
296 $Arguments: | |
297 | |
298 *******************************************************************************/ | |
299 | |
300 static void mmi_midi_test_editor_cb(T_MFW_HND win, USHORT identifier, SHORT reason) | |
301 { | |
302 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
303 T_MMI_MT_Editor_Data* dev_name_data = (T_MMI_MT_Editor_Data *)win_data->user; | |
304 UBYTE * editor_buffer = NULL; | |
305 SHORT max_edit_size = 0; | |
306 T_MFW_HND editor_win; | |
307 T_MFW_HND parent; | |
308 | |
309 TRACE_FUNCTION ("mmi_midi_test_editor_cb()"); | |
310 | |
311 if (identifier == MT_NAME_EDITOR) | |
312 { | |
313 editor_buffer = dev_name_data->mt_buffer; | |
314 max_edit_size = MT_MAX_EDITOR_LENGTH; | |
315 editor_win = dev_name_data->mt_win_editor; | |
316 parent = dev_name_data->win; | |
317 } | |
318 else | |
319 { | |
320 TRACE_FUNCTION ("mmi_midi_test_editor_cb() : Unknown Identifier"); | |
321 /* | |
322 ** if this isn't one of the "recognised" editors leave now! | |
323 */ | |
324 return; | |
325 } | |
326 | |
327 switch (reason) | |
328 { | |
329 case INFO_KCD_LEFT: | |
330 { | |
331 /* | |
332 ** If there is no string entered, treat this as if it was a "Cancel" | |
333 */ | |
334 if (editor_buffer[0] == 0x00) | |
335 { | |
336 /* | |
337 ** Send a "Cancel" to the Midi test window | |
338 */ | |
339 SEND_EVENT(parent, MT_EDITOR_CANCEL, identifier, NULL); | |
340 } | |
341 else | |
342 { | |
343 /* | |
344 ** Send a "Select" to the Midi test window | |
345 */ | |
346 SEND_EVENT(parent, MT_EDITOR_SELECT, identifier, NULL); | |
347 } | |
348 } | |
349 break; | |
350 | |
351 case INFO_KCD_RIGHT: | |
352 if (strlen((char *)editor_buffer) == 0) | |
353 { | |
354 | |
355 /* | |
356 ** Send a "Cancel" to the Midi test window | |
357 */ | |
358 SEND_EVENT(parent, MT_EDITOR_CANCEL, identifier, NULL); | |
359 } | |
360 break; | |
361 | |
362 case INFO_KCD_HUP: | |
363 /* | |
364 ** Set the buffer to NULLS | |
365 */ | |
366 memset(editor_buffer, 0x00, max_edit_size); | |
367 | |
368 /* | |
369 ** Send a "Cancel" to the Midi test window | |
370 */ | |
371 SEND_EVENT(parent, MT_EDITOR_CANCEL, identifier, NULL); | |
372 break; | |
373 | |
374 default: | |
375 /* otherwise no action to be performed | |
376 */ | |
377 break; | |
378 } | |
379 } | |
380 | |
381 | |
382 /******************************************************************************* | |
383 | |
384 $Function: mmi_midi_test_editor_destroy | |
385 | |
386 $Description: This function performs the necessary steps to remove the window handling the | |
387 voice number editor, tidying up all allocated resources. | |
388 | |
389 $Returns: MfwResOk : Success | |
390 MfwResIllHnd : Illegal Window Handler provided | |
391 | |
392 $Arguments: win : Window to be destroyed | |
393 | |
394 *******************************************************************************/ | |
395 MfwRes mmi_midi_test_editor_destroy(T_MFW_HND win) | |
396 { | |
397 T_MFW_WIN * win_data; | |
398 T_MMI_MT_Editor_Data * data; | |
399 | |
400 TRACE_FUNCTION ("mmi_midi_test_editor_destroy"); | |
401 | |
402 | |
403 if (win == (void *)0) | |
404 return MfwResIllHnd; | |
405 | |
406 win_data = ((T_MFW_HDR *) win)->data; | |
407 data = (T_MMI_MT_Editor_Data *)win_data->user; | |
408 | |
409 /* | |
410 ** Destroy the Window | |
411 */ | |
412 win_delete(data->win); | |
413 | |
414 /* | |
415 ** Free the dynamically allocated memory | |
416 */ | |
417 mfwFree((U8 *)data, (U16)sizeof(T_MMI_MT_Editor_Data)); | |
418 | |
419 return MfwResOk; | |
420 } | |
421 | |
422 | |
423 /******************************************************************************* | |
424 | |
425 $Function: mmi_midi_test_editor_cntrl | |
426 | |
427 $Description: This is the dialog control function for the voice number selection Window. It | |
428 receives the signals from the MFW and determines what action, if any, to take. | |
429 | |
430 $Returns: None | |
431 | |
432 $Arguments: win : The pointer to the window handler, so the function can reference the | |
433 dynamic user data, if any. | |
434 event : The incoming event | |
435 value : Generic incoming Parameter, it will be 'event' dependant | |
436 parameter : Generic incoming Parameter, it will be 'event' dependant | |
437 | |
438 *******************************************************************************/ | |
439 void mmi_midi_test_editor_cntrl (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
440 { | |
441 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
442 T_MMI_MT_Editor_Data * data = (T_MMI_MT_Editor_Data *)win_data->user; | |
443 T_AUI_EDITOR_DATA editor_data; | |
444 SHORT mfw_midi_retVal; | |
445 int voice_limit; | |
446 | |
447 switch (event) | |
448 { | |
449 case MT_CREATE_EDITOR: | |
450 #ifdef NEW_EDITOR | |
451 //Clear the editor buffer | |
452 memset(&editor_data,'\0',sizeof(editor_data)); | |
453 | |
454 /* | |
455 ** Initialise the editor | |
456 */ | |
457 AUI_edit_SetDefault(&editor_data); | |
458 AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, data->mt_buffer, MT_MAX_EDITOR_LENGTH); | |
459 AUI_edit_SetTextStr(&editor_data, TxtSoftSelect, TxtSoftBack, TxtMidiEnterVoiceNumber, TxtNull); | |
460 AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtCancel); | |
461 AUI_edit_SetEvents(&editor_data, MT_NAME_EDITOR, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_midi_test_editor_cb); | |
462 data->mt_win_editor = AUI_edit_Start(data->win, &editor_data); | |
463 #endif | |
464 break; | |
465 | |
466 case MT_EDITOR_CANCEL: | |
467 | |
468 if (value == MT_NAME_EDITOR) | |
469 { | |
470 /* | |
471 ** The editor will have been destroyed. Reset the Window handler | |
472 */ | |
473 data->mt_win_editor = (void *)0; | |
474 } | |
475 else | |
476 { | |
477 TRACE_FUNCTION ("mmi_midi_test_editor_cntrl(), MT_EDITOR_CANCEL event received with unexpected value" ); | |
478 } | |
479 | |
480 /* | |
481 ** Destroy the editor Window | |
482 */ | |
483 TRACE_FUNCTION ("mmi_midi_test_editor_cntrl cancel"); | |
484 mmi_midi_test_editor_destroy(data->win); | |
485 break; | |
486 | |
487 case MT_EDITOR_SELECT: | |
488 if (value == MT_NAME_EDITOR) | |
489 { | |
490 voice_limit=atoi((char*)data->mt_buffer); | |
491 TRACE_EVENT_P1("voice_limit is %d",voice_limit); | |
492 if(voice_limit >32 ||voice_limit <=0) | |
493 { | |
494 mmi_midi_test_show_info(0, TxtError, TxtNull, NULL); | |
495 } | |
496 else | |
497 { | |
498 //translate ASCII format into integer format | |
499 mfw_midi_retVal = mfw_player_midi_set_voice_limit(voice_limit); | |
500 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
501 { | |
502 mmi_midi_test_show_info(0, TxtChConfigVoiceLimit, TxtSelected, NULL); | |
503 } | |
504 } | |
505 } | |
506 else | |
507 { | |
508 TRACE_FUNCTION ("mmi_midi_test_editor_cntrl(), MT_EDITOR_SELECT event received with unexpected value"); | |
509 } | |
510 TRACE_FUNCTION ("mmi_midi_test_editor_cntrl select"); | |
511 | |
512 /* | |
513 ** Destroy the Editor Window | |
514 */ | |
515 mmi_midi_test_editor_destroy(data->win); | |
516 break; | |
517 | |
518 default: | |
519 TRACE_FUNCTION ("mmi_midi_test_editor_cntrl(), Unexpected Event!"); | |
520 break; | |
521 } | |
522 | |
523 } | |
524 | |
525 | |
526 | |
527 /******************************************************************************* | |
528 | |
529 $Function: midi_test_editor_create | |
530 | |
531 $Description: This function performs the necessary steps to create the a window to enter the number of voices. | |
532 It will be removed, or rather remove itself on returning the | |
533 data to the Mfw. | |
534 | |
535 $Returns: T_MFW_HND : Window Handle to the New Window, Null if failed. | |
536 | |
537 $Arguments: parent : pointer to the parent window. | |
538 | |
539 *******************************************************************************/ | |
540 T_MFW_HND midi_test_editor_create(T_MFW_HND parent) | |
541 { | |
542 T_MMI_MT_Editor_Data *data; | |
543 T_MFW_WIN * win; | |
544 | |
545 TRACE_FUNCTION ("midi_test_editor_create"); | |
546 | |
547 data = (T_MMI_MT_Editor_Data *)mfwAlloc((U16)sizeof(T_MMI_MT_Editor_Data)); | |
548 | |
549 if (data == (void *)0) | |
550 return data; | |
551 | |
552 data->win = winCreate(parent, 0, E_WIN_VISIBLE, NULL); | |
553 | |
554 if (data->win == (void *)0) | |
555 { | |
556 /* | |
557 ** Failed to start : Free Memory, and exit | |
558 */ | |
559 mfwFree((U8 *)data, (U16)sizeof(T_MMI_MT_Editor_Data)); | |
560 data = (void *)0; | |
561 return data; | |
562 } | |
563 else | |
564 { | |
565 /* | |
566 ** Setup the Dialog control functions | |
567 */ | |
568 data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_midi_test_editor_cntrl; | |
569 data->mmi_control.data = data; | |
570 | |
571 win = ((T_MFW_HDR *)data->win)->data; | |
572 win->user = (void *)data; | |
573 } | |
574 | |
575 return data->win; | |
576 | |
577 } | |
578 | |
579 | |
580 /******************************************************************************* | |
581 | |
582 $Function: mt_menu_win_cb | |
583 | |
584 $Description: menu window callback (implementation of softkeys) | |
585 | |
586 $Returns: | |
587 | |
588 $Arguments: | |
589 | |
590 *******************************************************************************/ | |
591 static int mt_menu_win_cb (MfwEvt e, MfwWin *w) | |
592 { | |
593 T_mt_menu * data = (T_mt_menu *)w->user; | |
594 MfwMnu * mnu; | |
595 | |
596 TRACE_FUNCTION ("mt_menu_win_cb "); | |
597 | |
598 switch (e) | |
599 { | |
600 case MfwWinVisible: | |
601 mnu = (MfwMnu *)mfwControl(data->mt_menu); | |
602 softKeys_displayId(TxtSoftSelect, TxtSoftBack, 0, mnu->curAttr->mnuColour ); | |
603 break; | |
604 | |
605 default: | |
606 return 0; | |
607 } | |
608 return 1; | |
609 } | |
610 | |
611 | |
612 /******************************************************************************* | |
613 | |
614 $Function: mt_menu_destroy | |
615 | |
616 $Description: destroy menu window | |
617 | |
618 $Returns: | |
619 | |
620 $Arguments: window to be destroyed | |
621 | |
622 *******************************************************************************/ | |
623 static void mt_menu_destroy(MfwHnd window) | |
624 { | |
625 T_MFW_WIN * win_data = ((T_MFW_HDR *)window)->data; | |
626 T_mt_menu * data = (T_mt_menu *)win_data->user; | |
627 | |
628 TRACE_FUNCTION ("mt_menu_destroy"); | |
629 | |
630 if (window == NULL) | |
631 { | |
632 return; | |
633 } | |
634 | |
635 if (data) | |
636 { | |
637 win_delete(data->win); | |
638 | |
639 /* | |
640 ** Free Memory | |
641 */ | |
642 mfwFree((void *)data, sizeof (T_mt_menu)); | |
643 } | |
644 } | |
645 | |
646 //Sep 29,2005 REF: SPR 34407 xdeepadh | |
647 /******************************************************************************* | |
648 | |
649 $Function: midi_mt_menu_list_listmnu_cb | |
650 | |
651 $Description: destroy lists and menu in case of back softkey or menu exit | |
652 | |
653 $Returns: | |
654 | |
655 $Arguments: | |
656 | |
657 *******************************************************************************/ | |
658 static void midi_mt_menu_list_listmnu_cb(T_MFW_HND Parent, ListMenuData * ListData) | |
659 { | |
660 T_MFW_WIN *win_data = ((T_MFW_HDR *)Parent)->data; | |
661 T_mt_menu *data = (T_mt_menu *)win_data->user; | |
662 | |
663 TRACE_FUNCTION ("midi_mt_menu_list_listmnu_cb()"); | |
664 | |
665 | |
666 if ((ListData->Reason EQ LISTS_REASON_BACK) || | |
667 (ListData->Reason EQ LISTS_REASON_CLEAR) || | |
668 (ListData->Reason EQ LISTS_REASON_HANGUP)) | |
669 { | |
670 /* | |
671 ** Destroy the window --- Not sure if this is required! ... leave it out for now | |
672 */ | |
673 listsDestroy(ListData->win); | |
674 | |
675 /* | |
676 ** Free the memory set aside for ALL the devices to be listed. | |
677 */ | |
678 if (data->menu_list_data != NULL) | |
679 { | |
680 FREE_MEMORY ((void *)data->menu_list_data->List, (U16)(data->mt_num_file * sizeof (T_MFW_MNU_ITEM))); | |
681 FREE_MEMORY ((void *)data->menu_list_data, sizeof (ListMenuData)); | |
682 } | |
683 | |
684 mt_menu_destroy(data->win); | |
685 | |
686 } | |
687 //Sep 29,2005 REF: SPR 34407 xdeepadh | |
688 else if(ListData->Reason EQ LISTS_REASON_SELECT) | |
689 { | |
690 TRACE_EVENT_P1("list position is %d",ListData->ListPosition); | |
691 mt_menu_data.mt_list_idx = ListData->ListPosition; | |
692 //call mfw to save selected index | |
693 mfw_player_save_selected_file_idx(mt_menu_data.mt_list_idx); | |
694 //display a "file selected" text here | |
695 mmi_midi_test_show_info(0, TxtMidiFileSelected, TxtNull, NULL); | |
696 } | |
697 | |
698 return; | |
699 } | |
700 | |
701 | |
702 | |
703 /******************************************************************************* | |
704 | |
705 $Function: midi_test_set_loop_on | |
706 | |
707 $Description: set loop on | |
708 | |
709 $Returns: | |
710 | |
711 $Arguments:menu, menu item | |
712 | |
713 *******************************************************************************/ | |
714 GLOBAL int midi_test_set_loop_on (MfwMnu* m, MfwMnuItem* i) | |
715 { | |
716 SHORT mfw_midi_retVal; | |
717 | |
718 TRACE_FUNCTION ("midi_test_set_loop_on()"); | |
719 | |
720 mfw_midi_retVal = mfw_player_set_loop_on(); | |
721 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
722 { | |
723 TRACE_FUNCTION ("midi_test_set_loop_on(): Riviera Failed"); | |
724 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
725 } | |
726 else | |
727 { | |
728 mmi_midi_test_show_info(0, TxtMidiLoopOn, TxtNull, NULL); | |
729 } | |
730 return 1; | |
731 } | |
732 | |
733 /******************************************************************************* | |
734 | |
735 $Function: midi_test_set_loop_off | |
736 | |
737 $Description: set loop off | |
738 | |
739 $Returns: | |
740 | |
741 $Arguments:menu, menu item | |
742 | |
743 *******************************************************************************/ | |
744 GLOBAL int midi_test_set_loop_off (MfwMnu* m, MfwMnuItem* i) | |
745 { | |
746 SHORT mfw_midi_retVal; | |
747 | |
748 TRACE_FUNCTION ("midi_test_set_loop_off()"); | |
749 | |
750 mfw_midi_retVal = mfw_player_set_loop_off(); | |
751 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
752 { | |
753 TRACE_FUNCTION ("midi_test_set_loop_off(): Riviera Failed"); | |
754 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
755 } | |
756 else | |
757 { | |
758 mmi_midi_test_show_info(0, TxtMidiLoopOff, TxtNull, NULL); | |
759 } | |
760 return 1; | |
761 } | |
762 | |
763 | |
764 /******************************************************************************* | |
765 | |
766 $Function: midi_test_set_channel_mono | |
767 | |
768 $Description: set channels to mono | |
769 | |
770 $Returns: | |
771 | |
772 $Arguments:menu, menu item | |
773 | |
774 *******************************************************************************/ | |
775 GLOBAL int midi_test_set_channel_mono (MfwMnu* m, MfwMnuItem* i) | |
776 { | |
777 | |
778 SHORT mfw_midi_retVal; | |
779 | |
780 TRACE_FUNCTION ("midi_test_set_channel_mono()"); | |
781 mfw_midi_retVal = mfw_player_set_channel_mono(); | |
782 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
783 { | |
784 TRACE_FUNCTION ("mfw_player_set_channel_mono(): Riviera Failed"); | |
785 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
786 } | |
787 else | |
788 { | |
789 mmi_midi_test_show_info(0, TxtMidiMonoChannel, TxtNull, NULL); | |
790 } | |
791 | |
792 return 1; | |
793 } | |
794 | |
795 /******************************************************************************* | |
796 | |
797 $Function: midi_test_set_channel_stereo | |
798 | |
799 $Description: set channels to stereo | |
800 | |
801 $Returns: | |
802 | |
803 $Arguments:menu, menu item | |
804 | |
805 *******************************************************************************/ | |
806 GLOBAL int midi_test_set_channel_stereo (MfwMnu* m, MfwMnuItem* i) | |
807 { | |
808 | |
809 SHORT mfw_midi_retVal; | |
810 | |
811 TRACE_FUNCTION ("midi_test_set_channel_stereo()"); | |
812 mfw_midi_retVal = mfw_player_set_channel_stereo(); | |
813 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
814 { | |
815 TRACE_FUNCTION ("mfw_player_set_channel_stereo(): Riviera Failed"); | |
816 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
817 } | |
818 else | |
819 { | |
820 mmi_midi_test_show_info(0, TxtMidiStereoChannel, TxtNull, NULL); | |
821 } | |
822 | |
823 return 1; | |
824 } | |
825 | |
826 /******************************************************************************* | |
827 | |
828 $Function: midi_test_set_speaker | |
829 | |
830 $Description: set audiopath to speaker | |
831 | |
832 $Returns: | |
833 | |
834 $Arguments: menu, menu item | |
835 | |
836 | |
837 *******************************************************************************/ | |
838 GLOBAL int midi_test_set_speaker (MfwMnu* m, MfwMnuItem* i) | |
839 { | |
840 | |
841 SHORT mfw_midi_retVal; | |
842 TRACE_FUNCTION ("midi_test_set_speaker()"); | |
843 | |
844 mfw_midi_retVal=mfw_player_set_speaker(); | |
845 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
846 { | |
847 TRACE_FUNCTION ("midi_test_set_speaker(): Failed"); | |
848 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
849 } | |
850 else | |
851 { | |
852 mmi_midi_test_show_info(0, TxtMidiSpeaker, TxtNull, NULL); | |
853 } | |
854 | |
855 return 1; | |
856 } | |
857 | |
858 | |
859 | |
860 /******************************************************************************* | |
861 | |
862 $Function: midi_test_set_headset | |
863 | |
864 $Description: set audiopath to headset | |
865 | |
866 $Returns: | |
867 | |
868 $Arguments:menu, menu item | |
869 | |
870 *******************************************************************************/ | |
871 GLOBAL int midi_test_set_headset (MfwMnu* m, MfwMnuItem* i) | |
872 { | |
873 SHORT mfw_midi_retVal; | |
874 TRACE_FUNCTION ("midi_test_set_headset()"); | |
875 | |
876 mfw_midi_retVal=mfw_player_set_headset(); | |
877 if(mfw_midi_retVal != MFW_PLAYER_TEST_OK) | |
878 { | |
879 TRACE_FUNCTION ("midi_test_set_headset(): Failed"); | |
880 mmi_midi_test_show_info(0, TxtMidiOptionNotImplemented, TxtNull, NULL); | |
881 } | |
882 else | |
883 { | |
884 mmi_midi_test_show_info(0, TxtMidiHeadset, TxtNull, NULL); | |
885 } | |
886 | |
887 return 1; | |
888 } | |
889 | |
890 | |
891 | |
892 /******************************************************************************* | |
893 | |
894 $Function: midi_test_cc_voice_limit | |
895 | |
896 $Description:Creates the Editor for entering the voice limit number | |
897 | |
898 $Returns: | |
899 | |
900 $Arguments:menu, menu item | |
901 | |
902 *******************************************************************************/ | |
903 GLOBAL int midi_test_cc_voice_limit (MfwMnu* m, MfwMnuItem* i) | |
904 { | |
905 | |
906 T_MFW_HND win = mfw_parent(mfw_header()); | |
907 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
908 T_MMI_MT_Editor_Data * data = (T_MMI_MT_Editor_Data *)(win_data->user); | |
909 | |
910 TRACE_FUNCTION ("midi_test_cc_voice_limit()"); | |
911 | |
912 data->mt_win_editor = midi_test_editor_create(win); | |
913 | |
914 if (data->mt_win_editor != (void *)0) | |
915 { | |
916 SEND_EVENT(data->mt_win_editor, MT_CREATE_EDITOR, 0, (void *)NULL); | |
917 } | |
918 else | |
919 { | |
920 TRACE_FUNCTION ("midi_test_cc_voice_limit() : Unable to create Editor Win!"); | |
921 } | |
922 return 1; | |
923 } | |
924 | |
925 /******************************************************************************* | |
926 | |
927 $Function: midi_test_play | |
928 | |
929 $Description:Starts Playing a midi file | |
930 | |
931 $Returns: | |
932 | |
933 $Arguments:menu, menu item | |
934 | |
935 *******************************************************************************/ | |
936 GLOBAL int midi_test_play (MfwMnu* m, MfwMnuItem* i) | |
937 { | |
938 T_MFW_HND win = mfw_parent(mfw_header()); | |
939 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
940 T_MMI_MT_Editor_Data * data = (T_MMI_MT_Editor_Data *)(win_data->user); | |
941 T_AS_PLAYER_TYPE player_type; | |
942 #ifdef FF_MIDI_LOAD_FROM_MEM | |
943 T_MELODY melody_data; | |
944 #else | |
945 char* midi_file; | |
946 #endif | |
947 | |
948 TRACE_FUNCTION ("midi_test_play()"); | |
949 | |
950 //If no file is selected inform the user | |
951 if(mfw_player_currently_playing_idx < 0) | |
952 { | |
953 mmi_midi_test_show_info(0, TxtMidiSelectFile, TxtNull, NULL); | |
954 return 1; | |
955 | |
956 } | |
957 //flag set to 1 means we only play the currently selected file | |
958 mfw_player_exit_flag = PLAYER_EXIT_FLAG_TRUE; | |
959 //Play the midi player with high volume. | |
960 #ifdef FF_MIDI_RINGER | |
961 #ifdef FF_MIDI_LOAD_FROM_MEM | |
962 melody_data=sounds_midi_return_memory_location(mfw_player_currently_playing_idx); | |
963 player_type=mfw_ringer_deduce_player_type(melody_data.melody_name); | |
964 mfw_player_start_memory(player_type,(UINT32*)melody_data.melody,melody_data.melody_size,(UBYTE)AS_VOLUME_HIGH,mfw_player_playback_loop_flag,sounds_midi_player_start_cb); | |
965 #else | |
966 midi_file=sounds_midi_return_file_name(mfw_player_currently_playing_idx); | |
967 player_type=mfw_ringer_deduce_player_type(midi_file); | |
968 mfw_player_start_file(player_type,midi_file,(UBYTE)AS_VOLUME_HIGH,mfw_player_playback_loop_flag,sounds_midi_player_start_cb); | |
969 | |
970 #endif | |
971 #endif | |
972 return 1; | |
973 } | |
974 | |
975 /******************************************************************************* | |
976 | |
977 $Function: midi_test_play_all | |
978 | |
979 $Description:Plays all the midi files in the FFS one after the other | |
980 | |
981 $Returns: | |
982 | |
983 $Arguments:menu, menu item | |
984 | |
985 *******************************************************************************/ | |
986 GLOBAL int midi_test_play_all (MfwMnu* m, MfwMnuItem* i) | |
987 { | |
988 T_MFW_HND win = mfw_parent(mfw_header()); | |
989 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
990 T_MMI_MT_Editor_Data * data = (T_MMI_MT_Editor_Data *)(win_data->user); | |
991 T_AS_PLAYER_TYPE player_type; | |
992 int numberOfMelodies=0; | |
993 #ifdef FF_MIDI_LOAD_FROM_MEM | |
994 T_MELODY melody_data; | |
995 #else | |
996 char* midi_file; | |
997 #endif | |
998 | |
999 TRACE_FUNCTION ("midi_test_play_all()"); | |
1000 //Aug 29, 2005 REF: SPR 33999 xdeepadh | |
1001 //If the files are not populated, then populate the array and then playall the files. | |
1002 // Nov 23, 2005 REF : DR OMAPS00057378 x0039928 | |
1003 // IsMidiInit variable decides whether to copy files from FFS to LFS | |
1004 if(IsMidiInit==0) | |
1005 { | |
1006 sounds_midi_init(); | |
1007 IsMidiInit = 1; | |
1008 } | |
1009 | |
1010 numberOfMelodies = sounds_midi_return_file_number(); | |
1011 TRACE_EVENT_P1("numberOfMelodies for midi_test_play_all is %d",numberOfMelodies); | |
1012 | |
1013 if(numberOfMelodies <= 0) | |
1014 { | |
1015 mmi_midi_test_show_info(0, TxtMidiFileNotLoaded, TxtNull, NULL); | |
1016 return 1 ; | |
1017 | |
1018 } | |
1019 if(mfw_player_currently_playing_idx < 0) | |
1020 { | |
1021 //Aug 29, 2005 REF: SPR 33999 xdeepadh | |
1022 // When the files are not selected, the current playing index is set 0. | |
1023 mfw_player_currently_playing_idx = 0; | |
1024 } | |
1025 //set exit_flag to 0 to notify that we have to play all files | |
1026 mfw_player_exit_flag = PLAYER_EXIT_FLAG_FALSE; | |
1027 //Play the midi player with high volume. | |
1028 #ifdef FF_MIDI_RINGER | |
1029 #ifdef FF_MIDI_LOAD_FROM_MEM | |
1030 melody_data=sounds_midi_return_memory_location(mfw_player_currently_playing_idx); | |
1031 player_type=mfw_ringer_deduce_player_type(melody_data.melody_name); | |
1032 mfw_player_start_memory(player_type,(UINT32*)melody_data.melody,melody_data.melody_size,(UBYTE)AS_VOLUME_HIGH,FALSE,sounds_midi_player_start_cb); | |
1033 #else | |
1034 midi_file=sounds_midi_return_file_name(mfw_player_currently_playing_idx); | |
1035 player_type=mfw_ringer_deduce_player_type(midi_file); | |
1036 mfw_player_start_file(player_type,midi_file,(UBYTE)AS_VOLUME_HIGH,FALSE,sounds_midi_player_start_cb); | |
1037 #endif | |
1038 #endif | |
1039 return 1; | |
1040 } | |
1041 | |
1042 // Dec 08, 2004 REF: CRR MMI-SPR-27284 | |
1043 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
1044 // Solution: A window is created to hold list window. When the user presses Back key, the newly | |
1045 // created window is deleted along with list window, bringing the control back to Midi options | |
1046 // screen. | |
1047 /******************************************************************************* | |
1048 | |
1049 $Function: midi_test_files_exec_cb | |
1050 | |
1051 $Description: Call back function | |
1052 | |
1053 $Returns: none | |
1054 | |
1055 $Arguments: | |
1056 | |
1057 *******************************************************************************/ | |
1058 void midi_test_files_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) | |
1059 { | |
1060 T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; | |
1061 T_mt_menu * data = (T_mt_menu *)win_data->user; | |
1062 SHORT mfw_midi_retVal; | |
1063 int line; | |
1064 int max_file_number; | |
1065 int i; | |
1066 | |
1067 ListWinInfo * mnu_data = (ListWinInfo *)parameter; | |
1068 | |
1069 TRACE_FUNCTION (">>>>> midi_test_files_exec_cb()"); | |
1070 | |
1071 switch (event) | |
1072 { | |
1073 case E_INIT: | |
1074 | |
1075 TRACE_EVENT(">>>> midi_test_files_exec_cb() Event:E_INIT"); | |
1076 | |
1077 /* initialization of administrative data */ | |
1078 | |
1079 data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData)); | |
1080 | |
1081 if(data->menu_list_data == 0) | |
1082 { | |
1083 TRACE_EVENT("Failed memory alloc 1 "); | |
1084 return; | |
1085 } | |
1086 | |
1087 max_file_number = sounds_midi_return_file_number(); | |
1088 //In case no files have been loaded display info message | |
1089 //In case no files have been loaded return info message | |
1090 if(max_file_number == 0) | |
1091 { | |
1092 mmi_midi_test_show_info(0, TxtMidiFileNotLoaded, TxtNull, NULL); | |
1093 return; | |
1094 } | |
1095 | |
1096 | |
1097 data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( max_file_number * sizeof(T_MFW_MNU_ITEM) ); | |
1098 | |
1099 if(data->menu_list_data->List == 0) | |
1100 { | |
1101 TRACE_EVENT("Failed memory alloc 2"); | |
1102 return; | |
1103 } | |
1104 //Sep 29,2005 REF: SPR 34407 xdeepadh | |
1105 for (i = 0; i < max_file_number ; i++) | |
1106 { | |
1107 mnuInitDataItem(&data->menu_list_data->List[i]); | |
1108 data->menu_list_data->List[i].flagFunc = item_flag_none; | |
1109 //Display the midi file names in the list | |
1110 data->menu_list_data->List[i].str = (char *)sounds_midi_return_file_name(data->mt_file_count++); | |
1111 } | |
1112 | |
1113 data->menu_list_data->ListLength =max_file_number; | |
1114 data->menu_list_data->ListPosition = 1; | |
1115 data->menu_list_data->CursorPosition = 1; | |
1116 data->menu_list_data->SnapshotSize = max_file_number; | |
1117 data->menu_list_data->Font = 0; | |
1118 data->menu_list_data->LeftSoftKey = TxtSoftSelect; | |
1119 data->menu_list_data->RightSoftKey = TxtSoftBack; | |
1120 data->menu_list_data->KeyEvents = KEY_ALL; | |
1121 data->menu_list_data->Reason = 0; | |
1122 data->menu_list_data->Strings = TRUE; | |
1123 data->menu_list_data->Attr = (MfwMnuAttr*)&menuMtSearchListAttr; | |
1124 //Apr 05, 2005 REF: ENH 29994 xdeepadh | |
1125 data->menu_list_data->Attr->hdrId = TxtMidiFileTitle; | |
1126 data->menu_list_data->autoDestroy = FALSE; | |
1127 listDisplayListMenu(win, data->menu_list_data,(ListCbFunc)midi_mt_menu_list_listmnu_cb,0); | |
1128 | |
1129 break; | |
1130 | |
1131 default: | |
1132 break; | |
1133 } | |
1134 | |
1135 } | |
1136 | |
1137 // Dec 08, 2004 REF: CRR MMI-SPR-27284 | |
1138 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
1139 // Solution: A window is created to hold list window. When the user presses Back key, the newly | |
1140 // created window is deleted along with list window, bringing the control back to Midi options | |
1141 // screen. | |
1142 /******************************************************************************* | |
1143 | |
1144 $Function: midi_test_files_win_cb | |
1145 | |
1146 $Description: Window event handler | |
1147 | |
1148 $Returns: MFW_EVENT_REJECTED: | |
1149 MFW_EVENT_CONSUMED: | |
1150 | |
1151 $Arguments: | |
1152 | |
1153 *******************************************************************************/ | |
1154 static int midi_test_files_win_cb (MfwEvt e, MfwWin *w) | |
1155 { | |
1156 TRACE_FUNCTION ("midi_test_files_win_cb()"); | |
1157 switch (e) | |
1158 { | |
1159 case MfwWinVisible: /* window is visible */ | |
1160 break; | |
1161 case MfwWinFocussed: /* input focus / selected */ | |
1162 case MfwWinDelete: /* window will be deleted */ | |
1163 | |
1164 default: | |
1165 return MFW_EVENT_REJECTED; | |
1166 } | |
1167 return MFW_EVENT_CONSUMED; | |
1168 } | |
1169 | |
1170 | |
1171 // Dec 08, 2004 REF: CRR MMI-SPR-27284 | |
1172 // Description: MIDI Player: Back Key malfunctions in MIDI application. | |
1173 // Solution: A window is created to hold list window. When the user presses Back key, the newly | |
1174 // created window is deleted along with list window, bringing the control back to Midi options | |
1175 // screen. | |
1176 /******************************************************************************* | |
1177 | |
1178 $Function: midi_test_files_browse | |
1179 | |
1180 $Description: This function is called when the user selects "Browse Midi Files" option | |
1181 | |
1182 $Returns: MFW_EVENT_CONSUMED | |
1183 | |
1184 $Arguments: | |
1185 | |
1186 | |
1187 *******************************************************************************/ | |
1188 GLOBAL int midi_test_files_browse( MfwMnu *m, MfwMnuItem *i ) | |
1189 { | |
1190 T_MFW_HND win; | |
1191 T_MFW_HND parent_win = mfw_parent(mfw_header()); | |
1192 int numberOfMelodies=0; | |
1193 | |
1194 TRACE_FUNCTION ("midi_test_files_browse"); | |
1195 | |
1196 // Nov 23, 2005 REF : DR OMAPS00057378 x0039928 | |
1197 // IsMidiInit variable decides whether to copy files from FFS to LFS | |
1198 if(IsMidiInit==0) | |
1199 { | |
1200 sounds_midi_init(); | |
1201 IsMidiInit = 1; | |
1202 } | |
1203 // Nov 09, 2005 REF:DR OMAPS00049167 x0039928 | |
1204 // Fix : Call the player initialize routine to set the default parameters. | |
1205 mfw_player_init(); | |
1206 | |
1207 numberOfMelodies = sounds_midi_return_file_number(); | |
1208 TRACE_EVENT_P1("numberOfMelodies is %d",numberOfMelodies); | |
1209 | |
1210 if(numberOfMelodies <= 0) | |
1211 { | |
1212 mmi_midi_test_show_info(0, TxtMidiFileNotLoaded, TxtNull, NULL); | |
1213 | |
1214 } | |
1215 else | |
1216 { | |
1217 win = mmi_midi_test_build_Menu(parent_win); | |
1218 if (win NEQ NULL) | |
1219 { | |
1220 SEND_EVENT (win, E_INIT, 0, 0); | |
1221 } | |
1222 | |
1223 } | |
1224 return MFW_EVENT_CONSUMED; | |
1225 } | |
1226 | |
1227 //Sep 29,2005 REF: SPR 34407 xdeepadh | |
1228 /******************************************************************************* | |
1229 | |
1230 $Function: mmi_midi_test_build_Menu | |
1231 | |
1232 $Description: To hold list window | |
1233 | |
1234 $Returns: Window handle | |
1235 | |
1236 $Arguments: | |
1237 *******************************************************************************/ | |
1238 | |
1239 static T_MFW_HND mmi_midi_test_build_Menu( MfwHnd parent_window) | |
1240 { | |
1241 T_mt_menu * data = (T_mt_menu *)mfwAlloc(sizeof (T_mt_menu)); | |
1242 T_MFW_WIN * win; | |
1243 | |
1244 TRACE_FUNCTION ("mmi_midi_test_build_Menu"); | |
1245 | |
1246 /* | |
1247 * Create window handler | |
1248 */ | |
1249 | |
1250 data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)midi_test_files_win_cb); | |
1251 if (data->win EQ NULL) | |
1252 { | |
1253 return NULL; | |
1254 } | |
1255 | |
1256 TRACE_EVENT("list holder window created: " ); | |
1257 /* | |
1258 * connect the dialog data to the MFW-window | |
1259 */ | |
1260 | |
1261 data->mmi_control.dialog = (T_DIALOG_FUNC)midi_test_files_exec_cb; | |
1262 data->mmi_control.data = data; | |
1263 win = ((T_MFW_HDR *)data->win)->data; | |
1264 win->user = (void *)data; | |
1265 data->parent = parent_window; | |
1266 winShow(data->win); | |
1267 /* | |
1268 * return window handle | |
1269 */ | |
1270 | |
1271 return data->win; | |
1272 } | |
1273 | |
1274 | |
1275 |