FreeCalypso > hg > fc-magnetite
view src/aci2/bmi/mmiMP3Test.c @ 614:7ca17426c890
doc/C1xx-Howto: fc-host-tools-latest symlink
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 29 Jun 2019 02:00:16 +0000 |
parents | 3c2acfa1a72f |
children |
line wrap: on
line source
/******************************************************************************* Texas Instruments ******************************************************************************** This software product is the property of Texas Instruments and may not be disclosed to any third party without the express permission of the owner. ******************************************************************************** $Project name: MMI Application to test the different Audio file formats. $Module: Test Audio Player $File: MmiMp3Test.c $Revision: 1.0 $Author: Elsa Armanet-Said Texas Instruments Nice $Date: 17/05/04 ******************************************************************************** Description: This provides the MP3 Test Application interface. ******************************************************************************** $History: MmiMp3Test.c Nov 16,2005 REF: DR OMAPS00049192 x0039928 Bug:MP3: The screen is not refreshed after the mp3 file completes playing Fix: The window is destroyed in mmi_mp3_test_start_cb() after AUDIO_OK event is received in the mfw callback. 17/05/04 Sep 29,2005 REF: SPR 34407 xdeepadh Bug:Back soft key takes more time to return to the previous screen in MP3 application Fix:The list creation for MP3 files has been modified Sep 27,2005 REF: SPR 34402 xdeepadh Bug:Mono option is always highlighted even when Stereo is selected Fix:The channel setting will be saved in the FFS, which will be retrieved later and the selected channel will be higlighted. Jul 18, 2005 REF: SPR 31695 xdeepadh Bug:Problems with MP3 test application Fix:The window handling of MP3 Test Application has been done properly. $End *******************************************************************************/ /******************************************************************************* Include files *******************************************************************************/ #define ENTITY_MFW /* includes */ #include <string.h> #include <stdio.h> #include <stdlib.h> #include "typedefs.h" #include "vsi.h" #include "pei.h" #include "custom.h" #if defined (NEW_FRAME) #include "typedefs.h" #include "vsi.h" #include "pei.h" #include "custom.h" #include "gsm.h" #include "prim.h" #else #include "STDDEFS.H" #include "custom.h" #include "gsm.h" #include "vsi.h" #endif #include "message.h" /* included for aci_cmh.h .... */ #include "aci_cmh.h" /* included for mfw_sat.h, included for MmiDummy.h, included for MmiMenu.h */ #include "mfw_mfw.h" #include "mfw_win.h" #include "mfw_icn.h" /* included for mfw_mnu.h */ #include "mfw_mnu.h" #include "mfw_tim.h" #include "mfw_kbd.h" #include "mfw_sat.h" /* included for MmiDummy.h, included for MmiMenu.h */ #include "mfw_mp3test.h" #include "MmiBlkLangDB.h" #include "mmiColours.h" #include "MmiDialogs.h" #include "MmiDummy.h" /* included for MmiMenu.h */ #include "MmiLists.h" #include "MmiMenu.h" #include "MmiSoftKeys.h" #include "MmiMP3Test.h" #include "MmiMain.h" #include "Mmiicons.h" #include "Icons\IcnDefs.h" //Sep 27,2005 REF: SPR 34402 xdeepadh #include "MmiBookShared.h" #include "mfw_ffs.h" /******************************************************************************* internal data *******************************************************************************/ /* * Internal events */ // E_INIT event definition #define E_INIT 1 //Sep 27,2005 REF: SPR 34402 xdeepadh //defines for channels #define PLAYER_CHANNEL_MONO 0 #define PLAYER_CHANNEL_STEREO 1 //Jul 18, 2005 REF: SPR 31695 xdeepadh //Defines for Player events #define PLAYER_INIT 500 #define PLAYER_DESTROY 501 #define PLAYER_PLAY 502 /*local defines*/ #define PLAYER_INFO_SCRN_TIMEOUT 1500 typedef struct { T_MMI_CONTROL mmi_control; MfwHnd win; MfwHnd info_win; //Jul 18, 2005 REF: SPR 31695 xdeepadh MfwHnd parent_win;//Jul 18, 2005 REF: SPR 31695 xdeepadh MfwHnd mfwwin; MfwHnd callwin; MfwHnd kbd; } T_MMI_Player_Win_data; /*menu data structure definition*/ typedef struct { T_MMI_CONTROL mmi_control; T_MFW_HND win; T_MFW_HND parent; //Jul 18, 2005 REF: SPR 31695 xdeepadh T_MFW_HND kbd; T_MFW_HND kbd_long; T_MFW_HND player_menu; T_VOID_FUNC func_cb; UBYTE player_num_file; UBYTE player_file_count; ListCbFunc player_list_cb; UBYTE player_list_idx; ListMenuData * menu_list_data; //Sep 29,2005 REF: SPR 34407 xdeepadh }T_player_menu; // Nov 16,2005 REF: DR OMAPS00049192 x0039928 // Global variable that holds the mmi return path and is found in mfw_mp3test.c extern MMI_RETURN_PATH mmi_audio_player_return_path; /*global menu data*/ T_player_menu player_menu_data = {0}; /*Boolean to check whether file being played is paused.*/ BOOL IsPaused = FALSE; UBYTE IsMfwInit = 0; extern char* inputFileName; // input file extern UBYTE IsMP3On; extern int audio_player_currently_playing_idx ; /******************************************************************************* Local prototypes *******************************************************************************/ static void mmi_audio_player_menu_list_listmnu_cb(T_MFW_HND Parent, ListMenuData * ListData); static MfwHnd mmi_audio_player_show_info(T_MFW_HND parent, int str1, int str2, T_VOID_FUNC callback); //Sep 29,2005 REF: SPR 34407 xdeepadh static T_MFW_HND mmi_audio_player_build_player_Menu( MfwHnd parent_window); /*default static menu*/ static MfwMnuAttr menuPlayerSearchListAttr = { &menuArea, MNU_LEFT | MNU_LIST | MNU_CUR_LINE, /* centered page menu */ -1, /* use default font */ NULL, /* with these items (filled in later) */ 0, /* number of items (filled in leter) */ COLOUR_LIST_XX, /* Colour */ TxtNull, /* Hdr Id */ NULL, /* Background */ MNUATTRSPARE /* unused */ }; /******************************************************************************* $Function: mmi_audio_player_menu_destroy $Description: destroy menu window $Returns: $Arguments: *******************************************************************************/ static void mmi_audio_player_menu_destroy(MfwHnd window) { T_MFW_WIN * win_data = ((T_MFW_HDR *)window)->data; T_player_menu * data = (T_player_menu *)win_data->user; TRACE_FUNCTION ("mmi_audio_player_menu_destroy()"); if (window == NULL) { return; } if (data) { win_delete(data->win); /* ** Free Memory */ mfwFree((void *)data, sizeof (T_player_menu)); } } //Sep 29,2005 REF: SPR 34407 xdeepadh /******************************************************************************* $Function: mmi_audio_player_menu_list_listmnu_cb $Description: destroy lists and menu in case of back softkey or menu exit $Returns: $Arguments: *******************************************************************************/ static void mmi_audio_player_menu_list_listmnu_cb(T_MFW_HND Parent, ListMenuData * ListData) { T_MFW_WIN *win_data = ((T_MFW_HDR *)Parent)->data; T_player_menu *data = (T_player_menu *)win_data->user; char *fileExt; TRACE_FUNCTION ("mmi_audio_player_menu_list_listmnu_cb()"); if ((ListData->Reason EQ LISTS_REASON_BACK) || (ListData->Reason EQ LISTS_REASON_CLEAR) || (ListData->Reason EQ LISTS_REASON_HANGUP)) { /* ** Destroy the window --- Not sure if this is required! ... leave it out for now */ listsDestroy(ListData->win); /* ** Free the memory set aside for ALL the devices to be listed. */ if (data->menu_list_data != NULL) { FREE_MEMORY ((void *)data->menu_list_data->List, (U16)(data->player_num_file* sizeof (T_MFW_MNU_ITEM))); FREE_MEMORY ((void *)data->menu_list_data, sizeof (ListMenuData)); } mmi_audio_player_menu_destroy(data->win); } //Sep 29,2005 REF: SPR 34407 xdeepadh else if(ListData->Reason EQ LISTS_REASON_SELECT) { TRACE_EVENT_P1("list position is %d",ListData->ListPosition); //call mfw to save selected index mfw_audio_player_save_selected_file_idx(ListData->ListPosition); fileExt =(char*) mfw_audio_player_GetExtension(inputFileName); //Decide whether to play Mp3 or AAC if ( (strcmp(fileExt, "mp3") == 0)) { IsMP3On = MFW_PLAYER_MP3; } #ifdef FF_MMI_TEST_AAC else if ( (strcmp(fileExt, "aac") == 0)) { IsMP3On = MFW_PLAYER_AAC; } #endif data->player_list_idx = ListData->ListPosition; mmi_audio_player_show_info(0, TxtPlayerFileSelected, TxtNull, NULL); } return; } /******************************************************************************* $Function: mmi_audio_player_files_win_cb $Description: Window event handler $Returns: MFW_EVENT_REJECTED: MFW_EVENT_CONSUMED: $Arguments: *******************************************************************************/ static int mmi_audio_player_files_win_cb (MfwEvt e, MfwWin *w) { TRACE_FUNCTION ("mmi_audio_player_files_win_cb()"); switch (e) { case MfwWinVisible: /* window is visible */ break; case MfwWinFocussed: /* input focus / selected */ case MfwWinDelete: /* window will be deleted */ default: return MFW_EVENT_REJECTED; } return MFW_EVENT_CONSUMED; } /******************************************************************************* $Function: mmi_audio_player_files_exec_cb $Description: Call back function $Returns: none $Arguments: *******************************************************************************/ void mmi_audio_player_files_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) { T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; T_player_menu * data = (T_player_menu *)win_data->user; SHORT mfw_audio_player_retVal; int line; int max_file_number; int i; ListWinInfo * mnu_data = (ListWinInfo *)parameter; TRACE_FUNCTION ("mmi_audio_player_files_exec_cb"); switch (event) { case E_INIT: TRACE_EVENT(">>>> mmi_audio_player_files_exec_cb() Event:E_INIT"); /* initialization of administrative data */ data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData)); if(data->menu_list_data == 0) { TRACE_EVENT("Failed memory alloc 1 "); return; } max_file_number = mfw_audio_player_return_file_number(); //In case no files have been loaded display info message //In case no files have been loaded return info message if(max_file_number == 0) { mmi_audio_player_show_info(0, TxtPlayerFileNotLoaded, TxtNull, NULL); return; } data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( max_file_number * sizeof(T_MFW_MNU_ITEM) ); if(data->menu_list_data->List == 0) { TRACE_EVENT("Failed memory alloc 2"); return; } //Sep 29,2005 REF: SPR 34407 xdeepadh for (i = 0; i < max_file_number ; i++) { mnuInitDataItem(&data->menu_list_data->List[i]); data->menu_list_data->List[i].flagFunc = item_flag_none; //Display the Player file names in the list data->menu_list_data->List[i].str = (char *)mfw_audio_player_return_file_name(data->player_file_count++); } data->menu_list_data->ListLength =max_file_number; data->menu_list_data->ListPosition = 1; data->menu_list_data->CursorPosition = 1; data->menu_list_data->SnapshotSize = max_file_number; data->menu_list_data->Font = 0; data->menu_list_data->LeftSoftKey = TxtSoftSelect; data->menu_list_data->RightSoftKey = TxtSoftBack; data->menu_list_data->KeyEvents = KEY_ALL; data->menu_list_data->Reason = 0; data->menu_list_data->Strings = TRUE; data->menu_list_data->Attr = (MfwMnuAttr*)&menuPlayerSearchListAttr; //Apr 05, 2005 REF: ENH 29994 xdeepadh data->menu_list_data->Attr->hdrId = TxtPlayerTest; data->menu_list_data->autoDestroy = FALSE; listDisplayListMenu(win, data->menu_list_data,(ListCbFunc)mmi_audio_player_menu_list_listmnu_cb,0); break; default: break; } } /******************************************************************************* $Function: mmi_audio_player_files_browse $Description: This function is called when the user selects "Browse Player Files" option $Returns: MFW_EVENT_CONSUMED $Arguments: *******************************************************************************/ GLOBAL int mmi_audio_player_files_browse( MfwMnu *m, MfwMnuItem *i ) { T_MFW_HND win; T_MFW_HND parent_win = mfw_parent(mfw_header()); int numberOfMelodies=0; TRACE_FUNCTION ("mmi_audio_player_files_browse"); //initialize data in Player MFW if(IsMfwInit==0) { mfw_audio_player_init(); IsMfwInit = 1; } numberOfMelodies = mfw_audio_player_return_file_number(); TRACE_EVENT_P1("numberOfMelodies is %d",numberOfMelodies); if(numberOfMelodies <= 0) { mmi_audio_player_show_info(0, TxtPlayerFileNotLoaded, TxtNull, NULL); } else { win = mmi_audio_player_build_player_Menu(parent_win); if (win NEQ NULL) { SEND_EVENT (win, E_INIT, 0, 0); } } return MFW_EVENT_CONSUMED; } //Sep 29,2005 REF: SPR 34407 xdeepadh /******************************************************************************* $Function: mmi_audio_player_build_player_Menu $Description: To hold list window $Returns: Window handle $Arguments: *******************************************************************************/ static T_MFW_HND mmi_audio_player_build_player_Menu( MfwHnd parent_window) { T_player_menu * data = (T_player_menu *)mfwAlloc(sizeof (T_player_menu)); T_MFW_WIN * win; TRACE_FUNCTION ("mmi_audio_player_build_player_Menu"); /* * Create window handler */ data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_audio_player_files_win_cb); if (data->win EQ NULL) { return NULL; } TRACE_EVENT("list holder window created: " ); /* * connect the dialog data to the MFW-window */ data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_audio_player_files_exec_cb; data->mmi_control.data = data; win = ((T_MFW_HDR *)data->win)->data; win->user = (void *)data; data->parent = parent_window; winShow(data->win); /* * return window handle */ return data->win; } //Sep 27,2005 REF: SPR 34402 xdeepadh /******************************************************************************* $Function: mmi_audio_player_set_cur_selected_channels $Description: The Menu for Player channels will be displayed, by highlighting the selected menu item. $Returns:None $Arguments:None *******************************************************************************/ void mmi_audio_player_set_cur_selected_channels(void) { UBYTE CurSel; T_MFW_HND setting_win; T_MFW_HND win = mfw_parent(mfw_header()); setting_win =(T_MFW_HND) bookMenuStart(win, (MfwMnuAttr*)PlayerChannelAttributes(), 0); CurSel = FFS_flashData.player_channel_state; SEND_EVENT(setting_win, DEFAULT_OPTION, NULL, &CurSel); } /******************************************************************************* $Function: mmi_audio_player_set_channel_mono $Description: set channels to mono $Returns: $Arguments: *******************************************************************************/ GLOBAL int mmi_audio_player_set_channel_mono (MfwMnu* m, MfwMnuItem* i) { SHORT mfw_audio_player_retVal; TRACE_FUNCTION ("mmi_audio_player_set_channel_mono()"); mfw_audio_player_retVal = mfw_audio_player_set_channel_mono(); if(mfw_audio_player_retVal != MFW_PLAYER_TEST_OK) { TRACE_FUNCTION ("mmi_audio_player_set_channel_mono(): Riviera Failed"); mmi_audio_player_show_info(0, TxtPlayerTest, TxtNull, NULL); } else { // Sep 27,2005 REF: SPR 34402 xdeepadh // The channel state will be written into the flash. FFS_flashData.player_channel_state = PLAYER_CHANNEL_MONO ; flash_write(); mmi_audio_player_show_info(0, TxtPlayerMonoChannel, TxtNull, NULL); } return 1; } /******************************************************************************* $Function: mmi_audio_player_set_channel_stereo $Description: set channels to stereo $Returns: $Arguments: *******************************************************************************/ GLOBAL int mmi_audio_player_set_channel_stereo (MfwMnu* m, MfwMnuItem* i) { SHORT mfw_audio_player_retVal; TRACE_FUNCTION ("mmi_audio_player_set_channel_stereo()"); mfw_audio_player_retVal = mfw_audio_player_set_channel_stereo(); if(mfw_audio_player_retVal != MFW_PLAYER_TEST_OK) { TRACE_FUNCTION ("mmi_audio_player_set_channel_stereo(): Riviera Failed"); mmi_audio_player_show_info(0, TxtPlayerTest, TxtNull, NULL); } else { // Sep 27,2005 REF: SPR 34402 xdeepadh // The channel state will be written into the flash. FFS_flashData.player_channel_state = PLAYER_CHANNEL_STEREO; flash_write(); mmi_audio_player_show_info(0, TxtPlayerStereoChannel, TxtNull, NULL); } return 1; } /******************************************************************************* $Function: mmi_audio_player_show_info $Description: $Returns: $Arguments: *******************************************************************************/ static MfwHnd mmi_audio_player_show_info(T_MFW_HND parent, int str1, int str2, T_VOID_FUNC callback) { T_DISPLAY_DATA display_info; TRACE_FUNCTION ("mmi_audio_player_show_info()"); /* ** Create a timed dialog to display the Message "Failed" */ dlg_initDisplayData_TextId( &display_info, TxtNull, TxtNull, str1, str2, COLOUR_STATUS); dlg_initDisplayData_events( &display_info, callback, PLAYER_INFO_SCRN_TIMEOUT, KEY_LEFT | KEY_CLEAR | KEY_HUP); return info_dialog(parent, &display_info); } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_destroy $Description: Destruction of an dialog $Returns: void $Arguments: win *******************************************************************************/ void mmi_audio_player_play_destroy (T_MFW_HND own_window) { T_MFW_WIN * win = ((T_MFW_HDR *)own_window)->data; T_MMI_Player_Win_data * data = (T_MMI_Player_Win_data *)win->user; TRACE_FUNCTION ("mmi_audio_player_play_destroy()"); if (own_window == NULL) { TRACE_EVENT ("Error : Called with NULL Pointer"); return; } if (data) { /* * Exit KEYBOARD Handle */ kbd_delete (data->kbd); /* * Delete WIN Handler */ win_delete (data->info_win); /* * Free Memory */ FREE_MEMORY ((void *)data, sizeof (T_MMI_Player_Win_data)); } } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_kbd_cb $Description: Keyboard event handler $Returns: status int $Arguments: window handle event, keyboard control block *******************************************************************************/ static int mmi_audio_player_play_kbd_cb (T_MFW_EVENT event, T_MFW_KBD *keyboard) { T_MFW_HND win = mfw_parent (mfw_header()); T_MFW_WIN *win_data = ((T_MFW_HDR *)win)->data; T_MMI_Player_Win_data *data = (T_MMI_Player_Win_data *)win_data->user; TRACE_FUNCTION("mmi_audio_player_play_kbd_cb"); switch (keyboard->code) { case KCD_LEFT: if(IsPaused == FALSE) { mfw_audio_player_pause(); /* * Clear Screen */ dspl_ClearAll(); /* * Print the information screen */ ALIGNED_PROMPT(LEFT,Mmi_layout_line(1),0, TxtPlayerPause); /* * Print softkeys */ displaySoftKeys(TxtPlayerResume, TxtStop); IsPaused=TRUE; } else { /* * Clear Screen */ dspl_ClearAll(); mfw_audio_player_resume(); /* * Print the information screen */ ALIGNED_PROMPT(LEFT,Mmi_layout_line(1),0, TxtPlayerResume); /* * Print softkeys */ displaySoftKeys(TxtPlayerPause, TxtStop); IsPaused = FALSE; } break; case KCD_HUP: case KCD_RIGHT: mfw_audio_player_stop(); //go back to the previous dialog SEND_EVENT (win, PLAYER_DESTROY, 0, 0); break; default: break; } return MFW_EVENT_CONSUMED; } //Nov 16,2005 REF: DR OMAPS00049192 x0039928 /******************************************************************************* $Function: mmi_audio_player_start_cb $Description: Mmi callback function for mp3 test application $Returns: void $Arguments: win, window handle *******************************************************************************/ void mmi_audio_player_start_cb(T_MFW_HND win) { mmi_audio_player_play_destroy(win); dspl_Enable(TRUE); } //Nov 16,2005 REF: DR OMAPS00049192 x0039928 /******************************************************************************* $Function: mmi_audio_player_callback_init $Description: Initializes the mmi return callback path. $Returns: void $Arguments: window handle, callback function *******************************************************************************/ //Nov 16,2005 REF: DR OMAPS00049192 x0039928 static void mmi_audio_player_callback_init(T_MFW_HND win, void (*callback)(T_MFW_HND )) { mmi_audio_player_return_path.focus_win = win; mmi_audio_player_return_path.callback = callback; } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_exec_cb $Description: Dialog function for Player test app dialog $Returns: void $Arguments: win, window handle event, value, parameter *******************************************************************************/ void mmi_audio_player_play_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) { T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; T_MMI_Player_Win_data * data = (T_MMI_Player_Win_data *)win_data->user; T_DISPLAY_DATA display_info; TRACE_FUNCTION ("mmi_audio_player_play_exec_cb()"); switch (event) { case PLAYER_INIT: TRACE_EVENT ("PLAYER_INIT()"); // Nov 16,2005 REF: DR OMAPS00049192 x0039928 // Initialize the callback function to the return path. mmi_audio_player_callback_init(win, mmi_audio_player_start_cb); // Initialize dialog //Create keyboard handler data->kbd = kbd_create (win, KEY_ALL, (T_MFW_CB)mmi_audio_player_play_kbd_cb); if (value EQ PLAYER_PLAY) { TRACE_EVENT ("PLAYER_PLAY()"); mfw_audio_player_play(); win_show (win); } break; case PLAYER_DESTROY: mmi_audio_player_play_destroy(win); break; } } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_win_cb $Description: Callback function for information dialog $Returns: void $Arguments: window handle event, win *******************************************************************************/ static int mmi_audio_player_play_win_cb (T_MFW_EVENT event, T_MFW_WIN * win) { T_MMI_Player_Win_data * data = (T_MMI_Player_Win_data *)win->user; TRACE_FUNCTION ("mmi_audio_player_play_win_cb()"); if (data EQ NULL) return NULL; switch (event) { case E_WIN_VISIBLE: if (win->flags & E_WIN_VISIBLE) { /* * Clear Screen */ dspl_ClearAll(); /* * Print the information screen */ ALIGNED_PROMPT(LEFT,Mmi_layout_line(1),0, TxtPlayerPlaying); /* * Print softkeys */ displaySoftKeys(TxtPlayerPause,TxtStop ); } break; default: return 0; } return 1; } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_create $Description: Creation of window $Returns: Dialogue info win $Arguments: parent win *******************************************************************************/ static T_MFW_HND mmi_audio_player_play_create (T_MFW_HND parent_win) { T_MFW_WIN * win_data; T_MMI_Player_Win_data * data = (T_MMI_Player_Win_data *)ALLOC_MEMORY (sizeof (T_MMI_Player_Win_data)); TRACE_FUNCTION ("mmi_audio_player_play_create()"); data->info_win = win_create (parent_win, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_audio_player_play_win_cb); if (data->info_win EQ NULL) return NULL; /* * Create window handler */ data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_audio_player_play_exec_cb; data->mmi_control.data = data; data->parent_win = parent_win; win_data = ((T_MFW_HDR *)data->info_win)->data; win_data->user = (void *)data; /* * return window handle */ return data->info_win; } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play_start $Description: create a new voicememo dialog $Returns: Dialogue info win $Arguments: parent win, display info *******************************************************************************/ T_MFW_HND mmi_audio_player_play_start (T_MFW_HND parent_win, SHORT ID) { T_MFW_HND win; win = mmi_audio_player_play_create (parent_win); if (win NEQ NULL) { SEND_EVENT (win, PLAYER_INIT, ID, 0); } return win; } //Jul 18, 2005 REF: SPR 31695 xdeepadh /******************************************************************************* $Function: mmi_audio_player_play $Description: $Returns: $Arguments: *******************************************************************************/ GLOBAL int mmi_audio_player_play (MfwMnu* m, MfwMnuItem* i) { T_MFW_HND win = mfw_parent(mfw_header()); int max_file_number; TRACE_FUNCTION ("mmi_audio_player_play()"); //If no file is selected inform the user //retrieve from MFW number of files loaded max_file_number = mfw_audio_player_return_file_number(); //In case no files have been loaded return info message if(max_file_number == 0) { mmi_audio_player_show_info(0, TxtPlayerFileNotLoaded, TxtNull, NULL); } //If no file is selected inform the user else if(audio_player_currently_playing_idx < 0) { mmi_audio_player_show_info(0, TxtPlayerSelectFile, TxtNull, NULL); } else { //create a new Player playing screen mmi_audio_player_play_start (win, PLAYER_PLAY); } return 1; }