# HG changeset patch # User Mychaela Falconia # Date 1604800058 0 # Node ID f4c91ce88c0f28a11b404afae10ad868a6e4e266 # Parent f4d125dbfff223feb760aa63b03e23b21c638b12 rm src/ui/bmi/mmiFileManager.[ch] diff -r f4d125dbfff2 -r f4c91ce88c0f src/ui/bmi/mmiFileManager.c --- a/src/ui/bmi/mmiFileManager.c Sun Nov 08 01:39:40 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6069 +0,0 @@ - -#ifdef FF_MMI_FILEMANAGER - -/* ========================================================= -* Texas Instruments OMAP(TM) Platform Software -* (c) Copyright Texas Instruments, Incorporated. All Rights Reserved. -* -* Use of this software is controlled by the terms and conditions found -* in the license agreement under which this software has been supplied. -* ========================================================== */ - -/*========================================================== -* @file mmi_FileManager.c -* -* This provides the functionality of File Manager Applications. -* It supports file/folder related operations on FFS and MMC -* -* @path \bmi\condat\ms\src\bmi -* -* @rev 00.01 -*/ -/* ========================================================== */ -/*=========================================================== -*! -*! Revision History -*! =================================== - - Nov 06, 2007 DRT: OMAPS00151698 x0056422 - Description: BMI requirments needed to support Bluetooth AVRCP in Locosto 5.x - Solution : In mfw_audResume, Pause, Stop functions, if BT is connected, send a callback. - In the case of audio play, handle the callback of START_IND from audio task and - post a callback to BT if expected. - - August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) - Description: COMBO: Board reboots on receiving call during file viewer - Issue: When an incoming call / SMS arrives, a winShow of Idle's - window is done (to update the Icons etc..) which causes all windows - chained to Idle's window to be updated. In this process, even the - Image List and Image Viewer Windows' Updates happen, wherein the existing - MSL Pipeline is used to draw the Viewer (ThumbNail / QCIF). During this, - many of the global flags to maintain the status, command etc.. seem to get - reinitialized and corrupted and this lead to a weird memory corruption and hence - a crash. - Solution: A Status Indicator is maintained each for Image List and Image Viewer cases. - This shall be updated / set whenever the window gets suspended. In such cases, - the MSL Viewer Drawing shall not be done even when a WinVisible is received - and this flag shall be reset during the window create/destroy/resume. - Essentially, the Image List window / Image Viewer window shall call - MSL_Viewer_View ONLY when it is in the foreground and shall not do the same - - - Jul 10, 2007 DRT:OMAPS00138065 x0062174(Nimitha) - Description: Stop button disappears while we play an audio file when progressbar is on and the only way to stop the file is to press back. - STOP button is appearing for a moment if progress bar is ON. - Solution: STOP button should not appear in progressbar window. STOP button is displayed at proper place. - When progressbar is on, to stop the audio play we have to press BACK button, that is by design. - - Jul 04, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - Description: Once the audio file has finished automatically play button has to be pressed twice, - in order to be played again. - Solution : a) A Global variable aud_state_status is added to maintain the status of the player once the user presses Back button - during the file playing and coming back to File Management window. Two function mmi_set_aud_state_status and - mmi_get_aud_state_status is added to set/get the status of the audio player. - b) A condition is added to check the status of the audio player when user presses the joystick, - audio state is made to FM_AUD_PLAY if the audio is still playing. - c) While drawing File Management window a condition is added to check the status of the audio player and proper PLAY/STOP key is displayed - according to the status of the player. - - June 11, 2007 DRT:OMAPS00132505 x0061088 - Description: Impossible to see an 303kb image - Solution: Now thumb generation error given by MSL synchronously is handled MMI. - May28,07 DRT:OMAPS00132459 x0061560(sateeshg) - Description: while midi is playing stop button makes restart the playing - Solution:A flag been added when user plays the file and this flag is checked after coming back from current - directory to pause the play using joystick. - - April 27, 2007 DRT:OMAPS00128836 x0073106 - Description: Unexpected behavior when copying images with the same names from a memory to another. - Solution:In function mmi_fm_copy_start() added FM_COPY_NONE flag - and in function mmi_copy_End() added FM_COPY_NONE in two conditions. - - Apr 10, 2007 DRT: OMAPS00125325 x0039928 - Description: Hang up key doesn't work in File Manager audio and image lists - Solution: Hang up key is now mapped to back operation in the list. - - Apr 05, 2007 DRT: OMAPS00124859 x0039928 - Description: MM: Imelody can not be moved or copied - Solution: Copy-Move is displayed for all audio files - - Apr 06, 2007 DRT: OMAPS00124874 x0039928 - Description: MM: Renaming process of an Imy file is incorrect - Solution: Seperate enum values for different audio files is added. - - Apr 06, 2007 DRT: OMAPS00124877 x0039928 - Description: MM: Voice limit Options doesn't work - Solution: voice limit value is taken from the global variable set by menu options. - - Mar 30, 2007 DRT: OMAPS00122768 x0039928 - Description: MM: The board is blocked after having moved a file between NOR and T-FLASH - Solution: Image viewer is deinitialized when there are no image files in image viewer. - - Mar 30, 2007 DRT: OMAPS00122772 x0039928 - Description: MM: Image viewer in Filemanagement is blocked when there is just a directory - Solution: An invalid condition is removed which is checked aginst press of back key in FMA - - Mar 28, 2007 ER: OMAPS00106188 x0039928 - Description: Align Midi application menu choices and audio Player menu choices - - Mar 29, 2007 DRT: OMAPS00122677 x0039928 - Description: MM: By default, Storage devices in Camera Application is not set, taking a snapshot is impossible - Solution: Root directories are created on entering camera application. - - Mar 15, 2007 DRT: OMAPS00120225 x0039928 - Description: File Manager:Copy, move between NOR-MS,T-FLASH,NAND failed - Solution: A condition is added to check the source and destination device are same. - - Mar 15, 2007 DRT: OMAPS00120187 x0039928 - Description: MMI shows error if back button is pressed while playing audio files with N5.23 Pre release - Solution: mfw_fm_audStop is commented in func mmi_fm_aud_list_cb for event - LISTS_REASON_DRAWCOMPLETE which was being called twice in the scenario. - - -*! 10-Apr-2006 mf: Modified x0020906. Change required per SRxxxx -*! to provide File Manager Functionality. -*! -*! -*! 17-Jan-2006 mf: Revisions appear in reverse chronological order; -*! that is, newest first. The date format is dd-Mon-yyyy. - - -* =========================================================== */ -/****************************************************************************** - Include Files -*******************************************************************************/ - -#define ENTITY_MFW -/* includes */ -#include -#include -#include -#if defined (NEW_FRAME) -#include "typedefs.h" -#include "vsi.h" -#include "pei.h" -#include "custom.h" -#include "gsm.h" -#else -#include "STDDEFS.H" -#include "custom.h" -#include "gsm.h" -#include "vsi.h" -#endif - -#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_camapp.h" -#include "mfw_fm.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 "AUIEditor.h" -#include "MmiMain.h" -#include "Mmiicons.h" -#include "MmiWindow.h" -#include "MmiCall.h" - -#include "mfw_ffs.h" - -#include "mmiFileManager.h" -#include "mmiBookShared.h" - - - -/* OMAPS00151698, x0056422 */ -#ifdef FF_MMI_A2DP_AVRCP -#include "mfw_bt_api.h" -#include "mfw_bt_private.h" -#endif - - - -/******************************************************************************* - - Defines - -*******************************************************************************/ -T_MMI_FM_STRUCT *fm_data; -GLOBAL BOOL mslPrimHandler (USHORT opc, void * data); -extern MfwHnd winIconsLists; - -const unsigned char file[]={ -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -}; -const unsigned char folder[]= -{ -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -}; -const unsigned char audiofile[]= -{ -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0xFF,0xFF, -0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, -0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0x00,0x00, -0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x00,0x00,0x00,0x25, -0x25,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x00,0x00,0x00,0x25,0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x00,0x00, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x00,0x00,0x25,0x25,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x00,0x00,0x25,0x00,0x00, -0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, -0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x00,0x00,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25, -0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x25,0x00,0x00,0x00,0x00,0x25, -}; -MfwIcnAttr fmIconFile = -{ - { 0, 0,48,48 }, 1, COLOUR_ICON_XX, ICON_TYPE_256_COL, (char *) file -}; -MfwIcnAttr fmIconFolder = -{ - { 0, 0,48,48 }, 1, COLOUR_ICON_XX, ICON_TYPE_256_COL, (char *) folder -}; -MfwIcnAttr fmIconAudioFile = -{ - { 0, 0,48,48 }, 1, COLOUR_ICON_XX, ICON_TYPE_256_COL, (char *) audiofile -}; - -#define PB_OFF 0 -#define PB_ON 1 -BOOL mmi_progress_bar = PB_ON; -//Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) -/* //May28,07 DRT:OMAPS00132459 x0061560(sateeshg) -BOOL aud_state_back=0;*/ - -//Jun 25,2007 DRT:OMAPS00135749 x0062174(Nimitha) -int aud_state_status = 1; - -//Daisy tang added for Real Resume feature 20071107 -//start -BOOL IsMP3Playing = FALSE; -extern BOOL IsRealPaused; -//end - -extern UBYTE aud_state; -extern T_MFW_AUD_PARA para_aud; -extern T_MFW_HND pb_win; - - -/* OMAPS00151698, x0056422 */ -#ifdef FF_MMI_A2DP_AVRCP -extern BMI_BT_STRUCTTYPE tGlobalBmiBtStruct; -#endif //FF_MMI_A2DP_AVRCP - - - - - -/* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - -static unsigned char ucImgList_Sts = 0; -static unsigned char ucImgViewer_Sts = 0; - -#define MMI_IMGLIST_STS ucImgList_Sts -#define MMI_IMGVIEWER_STS ucImgViewer_Sts - -#define MMI_IMGLIST_STS_NORMAL 0x00 -#define MMI_IMGLIST_STS_SUSPENDED 0x01 - -#define MMI_IMGVIEWER_STS_NORMAL 0x00 -#define MMI_IMGVIEWER_STS_SUSPENDED 0x01 - -#define MMI_IMGLIST_CHANGE_STS(a) ( ucImgList_Sts = a ) - -#define MMI_IMGVIEWER_CHANGE_STS(a) ( ucImgViewer_Sts = a ) - -/* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ -/******************************************************************************* - - Local prototypes - -*******************************************************************************/ -static T_MFW_HND mmi_fm_start( T_MFW_HND parent_win); -static T_MFW_HND mmi_fm_create (T_MFW_HND parent_win); -static int mmi_fm_app_root_cb(T_MFW_EVENT evnt, void *para); -int mmi_fm_win_cb (MfwEvt e, MfwWin *w); -void mmi_fm_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -static void mmi_fm_destroy(MfwHnd own_window); - -void mmi_fm_drives_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -void mmi_fm_root_folders_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); - -void mmi_fm_list_create( T_MFW_HND win); -static void mmi_fm_list_destroy(MfwHnd own_window); - -void mmi_fm_imgThmbGen_start(void); -void mmi_fm_imgThmbGen_resume(void); -void mmi_fm_imgThmbGen(void); -void mmi_fm_imgThmbGen_identifyFile(void); - -void mmi_fm_imgThmbDraw_start(void); -void mmi_fm_imgThmbDraw_resume(void) ; -void mmi_fm_imgThmbDraw_identifyFile(void); -void mmi_fm_imgThmbDraw(void); - -T_MFW_HND mmi_fm_img_list_create(T_MFW_HND win); -void mmi_fm_img_list_cb(T_MFW_HND * Parent, ListMenuData * ListData); -BOOL mmi_fm_img_validate(void); -void mmi_fm_imgDraw(void); - -T_MFW_HND mmi_fm_aud_list_create(T_MFW_HND win); -void mmi_fm_aud_validate(void); -void mmi_fm_aud_list_cb(T_MFW_HND * Parent, ListMenuData * ListData); - -void mmi_fm_view_start(void); -T_MFW_HND mmi_fm_view_create(void); -int mmi_fm_view_win_cb (MfwEvt e, MfwWin *w); -void mmi_fm_view_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -static int mmi_fm_view_kbd_cb (MfwEvt e, MfwKbd *k); -void mmi_fm_view_destroy(T_MMI_FM_IMGDRAW_STRUCT * imgDraw_data); - -T_MFW_HND mmi_fm_rename_editor_create(T_MFW_HND parent_win); -static void mmi_fm_rename_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_rename_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_rename_editor_destroy(void); - -T_MFW_HND mmi_fm_newdir_editor_create(T_MFW_HND parent_win); -static void mmi_fm_newdir_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_newdir_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_newdir_editor_destroy(void); - -void mmi_fm_remove_confirm_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_remove_cb (T_MFW_HND win, USHORT identifier, SHORT reason); - -T_MFW_HND mmi_fm_properties_editor_create(T_MFW_HND parent_win); -static void mmi_fm_properties_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_properties_editor_destroy(void); -void mmi_fm_format_confirm_cb (T_MFW_HND win, USHORT identifier, SHORT reason); - -T_MFW_HND mmi_fm_memStat_editor_create(T_MFW_HND parent_win); -static void mmi_fm_memStat_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_memStat_editor_destroy(void); - -void mmi_fm_nofile_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_open (void); -void mmi_fm_goback(void); -T_MFW_HND mmi_fm_app_show_info(T_MFW_HND parent_win, int str1, int str2,int skey1, int skey2, T_VOID_FUNC callback,int timer, T_MFW_EVENT keyEvents); -void mmi_fm_get_filename( char * filename); -char * mmi_fm_get_ext( char * filename); -void mmi_fm_dest_root_folders_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -static T_MFW_HND mmi_fm_dest_start( T_MFW_HND parent_win); -static T_MFW_HND mmi_fm_dest_create (T_MFW_HND parent_win); -int mmi_fm_dest_win_cb (MfwEvt e, MfwWin *w); -void mmi_fm_dest_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -static void mmi_fm_dest_destroy(MfwHnd own_window); -T_MFW_HND mmi_fm_dest_list_create( T_MFW_HND win); -void mmi_fm_dest_list_cb(T_MFW_HND * Parent, ListMenuData * ListData); -void mmi_fm_destnofile_cb (T_MFW_HND win, USHORT identifier, SHORT reason); - -static void mmi_fm_dest_list_destroy(MfwHnd own_window); -void mmi_fm_copy_create(char * dest_folder); -T_MFW_HND mmi_fm_copy_dialog_create(T_MFW_HND parent_win); -static int mmi_fm_copy_dialog_kbd_cb (MfwEvt e, MfwKbd *k); -int mmi_fm_copy_dialog_win_cb (MfwEvt e, MfwWin *w); -void mmi_fm_copy_dialog_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -void mmi_fm_copy_dialog_destroy(); -void mmi_fm_copy_progress_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_copy_start(void); -void mmi_fm_copy_end(void); -int mmi_fm_copy_timer_cb ( MfwEvt e, MfwTim *m ); -void mmi_fm_copy_destroy(T_FM_COPY_STATE status); -void mmi_fm_displayDestDrive_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter); -void mmi_fm_copy_end_cb (T_MFW_HND win, USHORT identifier, SHORT reason); -void mmi_fm_displayDestDrive(void); -void mmi_fm_destgoback(void); -void mmi_fm_set_mmi_plane_to_front(void); -/* Jun 26, 200 07, 2007 DRT: OMAPS00135749 x0062174 */ -GLOBAL void mmi_set_aud_state_status( T_FM_AUD_STATE status); -T_FM_AUD_STATE mmi_get_aud_state_status( ); -/* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support*/ -static void unicode_to_char_array(T_WCHAR *inp, char *out); - -/******************************************************************************* - - $Function: mmi_set_aud_state_status - - $Description: set audio state status - - $Returns: none. - - $Arguments: - -*******************************************************************************/ -//Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - -GLOBAL void mmi_set_aud_state_status( T_FM_AUD_STATE status) -{ - TRACE_FUNCTION("mmi_set_aud_status()"); - - aud_state_status = status; - TRACE_EVENT_P1("aud_state in set_aud_status %d", aud_state_status); - -} - -/******************************************************************************* - - $Function: mmi_get_aud_state_status - - $Description: get audio state status - - $Returns: none. - - $Arguments: - -*******************************************************************************/ -//Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - -T_FM_AUD_STATE mmi_get_aud_state_status( ) -{ - TRACE_FUNCTION("mmi_get_aud_status()"); - TRACE_EVENT_P1("aud_state in get_aud_status %d", aud_state_status); - - return aud_state_status; - -} - - - -/******************************************************************************* - $Function: mmi_fm_app_show_info - - $Description: information Dialog function - - $Returns: Created Window Pointer - - $Arguments: parent_win: -Parent window - str1, str2 -String IDs - skey1, skey2 -Softkey lables - callback -Callback Function - timer -Timeout value - keyEvents -Key events to be handled -*******************************************************************************/ -T_MFW_HND mmi_fm_app_show_info(T_MFW_HND parent_win, int str1, int str2,int skey1, int skey2, T_VOID_FUNC callback,int timer, T_MFW_EVENT keyEvents) -{ - T_DISPLAY_DATA display_info; - T_MFW_HND win; - - TRACE_FUNCTION ("mmi_fm_app_show_info()"); - - dlg_initDisplayData_TextId( &display_info, skey1, skey2, str1, str2, COLOUR_STATUS); - dlg_initDisplayData_events( &display_info, callback, timer, keyEvents); - win = info_dialog(parent_win, &display_info); - return win; -} - - -/******************************************************************************* - $Function: mmi_fm_drives - - $Description: Display the drive options open , memory status, format - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_drives(MfwMnu* mnu, MfwMnuItem* item) -{ - T_MFW_HND parent_win; - T_MFW_HND win; - - TRACE_FUNCTION("mmi_fm_drives" ); - - fm_data = (T_MMI_FM_STRUCT *)mfwAlloc(sizeof(T_MMI_FM_STRUCT)); - parent_win = mfwParent(mfw_header()); - fm_data->source = (T_FM_DEVICE_TYPE)mnu->lCursor[mnu->level]; - TRACE_EVENT_P1("Selected Drive %d",fm_data->source); - /* Apr 06, 2007 DRT: OMAPS00124877 x0039928 */ - /* Fix: Default settings for audio player */ - mfw_player_init(); - win=(T_MFW_HND)bookMenuStart( parent_win, FMDrivesOptionsListAttributes(), 0); - SEND_EVENT(win,ADD_CALLBACK,NULL,(void *)mmi_fm_drives_cb); - - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - - $Function: mmi_fm_drives_cb - - $Description: Callback function for the drive option window - - $Returns: Execution status - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_drives_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - TRACE_FUNCTION("mmi_fm_drives_cb"); - - mfwFree((U8 *)fm_data, sizeof (T_MMI_FM_STRUCT)); - fm_data = NULL; -} - -/******************************************************************************* - $Function: mmi_fm_root_folders - - $Description: Display the root Image, Audio Directories - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_root_folders(MfwMnu* mnu, MfwMnuItem* item) -{ - T_MFW_HND parent_win; - T_MFW_HND win; - - TRACE_FUNCTION("mmi_fm_root_folders" ); - - parent_win = mfwParent(mfw_header()); - fm_data->cur_dir = (T_FM_CURDIR *)mfwAlloc(sizeof(T_FM_CURDIR)); - win = (T_MFW_HND)bookMenuStart( parent_win, FMRootFolderAttributes(), 0); - SEND_EVENT(win,ADD_CALLBACK,NULL,(void *)mmi_fm_root_folders_cb); - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_root_event_cb - - $Description: Callback function for the root Image, Audio Directory window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_root_folders_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - TRACE_FUNCTION("mmi_fm_root_event_cb"); - - mfwFree((U8 *)fm_data->cur_dir , sizeof (T_FM_CURDIR)); - fm_data->cur_dir = NULL; -} -/******************************************************************************* - $Function: mmi_fm_display - - $Description: Displays the files and folders given path - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_display(MfwMnu* mnu, MfwMnuItem* item) -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_MFW_HND parent_win = mfwParent(mfw_header()); - - TRACE_FUNCTION("mmi_fm_display"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state11 %d",cur_dir->dirinfo.aud.state); - - cur_dir->depth = 0; - cur_dir->dir_type = OBJECT_TYPE_NONE; - cur_dir->currentIndex = 0; - cur_dir->num_objs = 0; - cur_dir->startIndex = 0; - switch(mnu->lCursor[mnu->level]) - { - case 0: - fm_data->app = FM_IMAGE; - cur_dir->dir_type=OBJECT_TYPE_IMAGE_FOLDER; - break; - case 1: - fm_data->app = FM_AUDIO; - cur_dir->dir_type=OBJECT_TYPE_AUDIO_FOLDER; - break; - } - //Based on the selected drive, load the root image, audio directory names - switch(fm_data->source) - { - case FM_NOR_FLASH: - if(cur_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( cur_dir->dir_path, NORDIR); - strcpy( cur_dir->dir_name, NORDIR_IMG); - } - else if(cur_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( cur_dir->dir_path, NORDIR); - strcpy( cur_dir->dir_name, NORDIR_AUD); - } - break; - case FM_NORMS_FLASH: - if(cur_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( cur_dir->dir_path, NORMSDIR); - strcpy( cur_dir->dir_name, NORMSDIR_IMG); - } - else if(cur_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( cur_dir->dir_path, NORMSDIR); - strcpy( cur_dir->dir_name, NORMSDIR_AUD); - } - break; - case FM_NAND_FLASH: - if(cur_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( cur_dir->dir_path, NANDDIR); - strcpy( cur_dir->dir_name, NANDDIR_IMG); - } - else if(cur_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( cur_dir->dir_path, NANDDIR); - strcpy( cur_dir->dir_name, NANDDIR_AUD); - } - break; - case FM_T_FLASH: - if(cur_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( cur_dir->dir_path, TFLASHDIR); - strcpy( cur_dir->dir_name, TFLASHDIR_IMG); - } - else if(cur_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( cur_dir->dir_path, TFLASHDIR); - strcpy( cur_dir->dir_name, TFLASHDIR_AUD); - } - break; - } - TRACE_EVENT_P2("Path %s Dir %s", cur_dir->dir_path,cur_dir->dir_name); - cur_dir->depth = 1; - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state12 %d",cur_dir->dirinfo.aud.state); - mmi_fm_start( parent_win); - return MFW_EVENT_CONSUMED; - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state13 %d",cur_dir->dirinfo.aud.state); -} - -/******************************************************************************* - $Function: mmi_fm_start - - $Description: To create the FileManager window - - $Returns: Created Window Pointer - - $Arguments: parent_win -Parent Window -*******************************************************************************/ -static T_MFW_HND mmi_fm_start( T_MFW_HND parent_win) -{ - TRACE_FUNCTION("mmi_fm_list_Start"); - - //Checks and creates the root directories for image and audio - mfw_fm_createRootDir(fm_data->source); - - //Creating the root window for FileManager - fm_data->root_win=mmi_fm_create(parent_win); - - if (fm_data->root_win NEQ NULL) - { - fm_data->opt_type=FM_NONE; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } - return fm_data->root_win; -} - -/******************************************************************************* - $Function: mmi_fm_create - - $Description: To create the FileManager window - - $Returns: Created Window Pointer - - $Arguments: parent_win -Parent Window -*******************************************************************************/ -static T_MFW_HND mmi_fm_create (T_MFW_HND parent_win) -{ - - T_MFW_WIN * win; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION("mmi_fm_create"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state31 %d",cur_dir->dirinfo.aud.state); - - //Creating the root window for FileManager - fm_data->root_win = win_create (parent_win, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_fm_win_cb); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state32 %d",cur_dir->dirinfo.aud.state); - TRACE_EVENT_P1("fm_data->root_win %x",fm_data->root_win); - if (fm_data->root_win EQ NULL) - { - mfwFree((U8 *)fm_data, (U16)sizeof(T_MMI_FM_STRUCT)); - fm_data=NULL; - return NULL; - } - /* - connect the dialog data to the MFW-window - */ - fm_data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_fm_exec_cb; - fm_data->mmi_control.data = fm_data; - fm_data->parent_win= parent_win; - win = ((T_MFW_HDR *)fm_data->root_win)->data; - win->user = (void *)fm_data; - if(fm_data->mfw_win == NULL) - { - //Creating the mfw component for the root window for FileManager - fm_data->mfw_win = (T_MFW_HND)mfw_fm_create(fm_data->root_win, E_FM_ALL_SERVICES, (MfwCb)mmi_fm_app_root_cb); - } - if (fm_data->mfw_win== NULL) - { - winDelete(fm_data->root_win); - mfwFree((U8 *)fm_data, (U16)sizeof(T_MMI_FM_STRUCT)); - fm_data=NULL; - return NULL; - } - - fm_data->list_win=NULL; - cur_dir->startIndex=0; - winShow(fm_data->root_win); - return fm_data->root_win; -} - -/******************************************************************************* - $Function: mmi_fm_app_root_cb - - $Description: Handler for all the events from mfw for FileManager - - $Returns: Execution status - - $Arguments: event -window event Id - para -optional data. -*******************************************************************************/ -static int mmi_fm_app_root_cb(T_MFW_EVENT event, void *para) -{ - T_MFW_HND win = mfw_parent(mfw_header()); - T_MFW_WIN * win_data; - T_MMI_FM_STRUCT *fm_data; - T_FM_CURDIR *cur_dir ; - T_MFW_FM_PARA *fm_para=(T_MFW_FM_PARA*) para; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION ("mmi_fm_app_root_cb()"); - - win_data = ((T_MFW_HDR *) win)->data; - fm_data = (T_MMI_FM_STRUCT *)win_data->user; - cur_dir = fm_data->cur_dir; - - TRACE_EVENT_P2(" Event %x, state %d",event,fm_para->img_state); - switch (event) - { - case E_FM_THMB_INIT: - if(fm_para->img_state == FM_UCP_NO_ERROR) - { - //Initialization successful. Start generating thumbnails - cur_dir->dirinfo.img.cmd = FM_UCP_THMB_GEN; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_generate(); - if(result != FM_UCP_NO_ERROR) - { - //Error Generating thumbnails - //Deinitialize the Thumbnail UCP and destroy it - TRACE_ERROR("Error generating thumbnails"); - cur_dir->dirinfo.img.cmd=FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state=FM_UCP_ERROR; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - } - else - { - //Error in initialization. Destroy the Thumbnail UCP - //Create the Viewer UCP - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - cur_dir->currentIndex = cur_dir->startIndex; - mmi_fm_img_validate(); - mmi_fm_imgThmbDraw_start(); - } - break; - case E_FM_THMB_GEN: - switch(fm_para->img_state) - { - case FM_UCP_NO_ERROR: - //Thumbanail generation successful. Continue generating thumbnails - cur_dir->dirinfo.img.state = FM_UCP_NO_ERROR; - mmi_fm_imgThmbGen(); - break; - case FM_UCP_ERROR_BAD_STREAM: - case FM_UCP_ERROR_UNKNOWN: - //NonFatal Error in generation. Deinitialize and Initialize the Thumbnail UCP - cur_dir->dirinfo.img.cmd = FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR_NONFATAL; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - break; - case FM_UCP_ERROR_NO_MEM: - case FM_UCP_ERROR_INVALID_ARGUMENT: - case FM_UCP_ERROR: - //Fatal Error in generation. Deinitialize and Destroy the Thumbnail UCP - cur_dir->dirinfo.img.cmd = FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR_FATAL; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - break; - } - break; - case E_FM_THMB_DEINIT: - if(fm_para->img_state == FM_UCP_NO_ERROR) - { - switch(cur_dir->dirinfo.img.state) - { - case FM_UCP_NONE: - //Had completed thumbnail generation successfully - //Thumbnail UCP deinitialized, Destroy the Thumbnail UCP. - //Create the Viewer UCP for drawing the thumbnails - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - cur_dir->currentIndex=cur_dir->startIndex; - mmi_fm_img_validate(); - mmi_fm_imgThmbDraw_start(); - break; - case FM_UCP_ERROR_FATAL: - //Had Encountered a fatal error. - //Thumbnail UCP deinitialized, Destroy the Thumbnail UCP. - //Create the Viewer UCP for drawing the thumbnails - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - cur_dir->currentIndex=cur_dir->startIndex; - mmi_fm_img_validate(); - mmi_fm_imgThmbDraw_start(); - break; - /*May 11, 2007 DRT:OMAPS00132505 x0061088*/ - case FM_UCP_ERROR: - case FM_UCP_ERROR_NONFATAL: - //Had Encountered a nonfatal error. Thumbnail UCP was deinitialized - //initialize again to continue with the next thumbnail generation - mmi_fm_imgThmbGen_resume(); - break; - } - } - else - { - //Error in deinitializing the Thumbnail UCP. Destroy the Thumbnail UCP. - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - break; - case E_FM_IMG_INIT: - if(fm_para->img_state == FM_UCP_NO_ERROR) - { - //Viewer UCP is successfully initialized. - if(cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_INIT) - { - //Draw the 48 X 48 thumbnail - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - } - else if (cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_INIT) - { - //Draw the QCIF Width X QCIF Height image - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - } - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - if( cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DEINIT; - else - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - } - else - { - //Error initializing the Viewer UCP. Destroy it - //Unlock the keys - if(cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_INIT) - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - else - displayMenuKeys(MENU_KEY_ALL); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - } - break; - case E_FM_IMG_DRAW: - switch(fm_para->img_state ) - { - case FM_UCP_NO_ERROR: - cur_dir->dirinfo.img.state = FM_UCP_NO_ERROR; - if(cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) - { - //Drawing the 48 X 48 thumbnail was successful. Conitnue to the next one - cur_dir->currentIndex++; - mmi_fm_imgThmbDraw(); - } - else if(cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW) - { - //Drawing the QCIF Width X QCIF Height image was successful. Unlock the keys now. - displayMenuKeys(MENU_KEY_ALL); - } - break; - case FM_UCP_ERROR_UNKNOWN: - case FM_UCP_ERROR_BAD_STREAM: - case FM_UCP_ERROR_READ_FAILED: - if(cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) - { - //Error drawing the thumbnail image. Deinitialize the Viewer UCP, Initialize again to draw the next thumbnail. - cur_dir->dirinfo.img.cmd=FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR_NONFATAL; - } - else if(cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW) - { - //Error drawing theQCIF image. Deinitialize the Viewer UCP and destroy it - cur_dir->dirinfo.img.cmd=FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR_FATAL; - } - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - break; - case FM_UCP_ERROR_INVALID_ARGUMENT: - case FM_UCP_ERROR : - //Error drawing the image. Deinitialize the Viewer UCP, unblock the keys and destroy it. - //48 X 48 Thumbnail drawing - if(cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) - { - cur_dir->dirinfo.img.cmd=FM_UCP_THMBIMG_DEINIT; - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - } - //QCIF Image Drawing - else if(cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW) - { - cur_dir->dirinfo.img.cmd=FM_UCP_QCIFIMG_DEINIT; - displayMenuKeys(MENU_KEY_ALL); - } - cur_dir->dirinfo.img.state = FM_UCP_ERROR_FATAL; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - break; - } - break; - case E_FM_IMG_DEINIT: - switch(cur_dir->dirinfo.img.state) - { - case FM_UCP_NONE: - //Viewer UCP is deinitialized, destroy it - result = mfw_fm_imgViewer_destroy(); - break; - case FM_UCP_ERROR_NONFATAL: - //Viewer UCP is deinitialized, initialize and continue with next one - mmi_fm_imgThmbDraw_resume(); - break; - case FM_UCP_ERROR_FATAL: - //Viewer UCP is deinitialized, destroy it - result = mfw_fm_imgViewer_destroy(); - break; - } - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - switch(fm_data->opt_type) - { - case FM_OPEN: - mmi_fm_open(); - break; - case FM_BACK: - mmi_fm_goback(); - break; - } - break; - case E_FM_AUDIO_PROG: - pbar_update(para_aud.aud_pt, para_aud.aud_tt); - break; - case E_FM_AUDIO_STOP: - if(fm_para->aud_state != FM_AUD_NONE) - { - USHORT TextId = TxtAudNotAllowed; - //Jul 03,07 DRT:OMAPS00135749 x0062174(Nimitha) - //May28,07 DRT:OMAPS00132459 x0061560(sateeshg) - /*if(aud_state_back ) - { - aud_state_back =0; - }*/ - switch(fm_para->aud_state) - { - case FM_AUD_ERROR_NOTALLOWED: - TextId = TxtAudNotAllowed; - break; - case FM_AUD_ERROR_AUDIO: - TextId = TxtAudAudioError; - break; - case FM_AUD_ERROR_DENIED: - TextId = TxtAudDenied; - break; - case FM_AUD_ERROR_PLAYER: - TextId = TxtAudPlayerError; - break; - case FM_AUD_ERROR_FFS: - TextId = TxtAudFFSError; - break; - case FM_AUD_ERROR_MSGING: - TextId = TxtAudMessagingError; - break; - case FM_AUD_ERROR_NOTREADY: - TextId = TxtAudNotReady; - break; - case FM_AUD_ERROR_INVALIDPARAM: - TextId = TxtAudInvalidParam; - break; - case FM_AUD_ERROR_INTERNAL: - TextId = TxtAudInternalError; - break; - case FM_AUD_ERROR_MEM: - TextId = TxtAudMemoryError; - break; - case FM_AUD_ERROR_NOTSUPPORTED: - TextId = TxtAudNotSupported; - break; - } - mmi_fm_app_show_info(win,TxtError,TextId,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - /*a0393213(R.Prabakar) OMAPS00128976 - No return to File Management screen when a corrupted file is played - The window was not getting destroyed in case of error. Now it's destroyed.*/ - if(!IsRealPaused)//Daisy tang added for Real Resume feature 20071107 - { - if(mmi_progress_bar == PB_ON) - { - winDelete(pb_win); - pb_win = 0; - } -/* Mar 15, 2007 DRT: OMAPS00120187 x0039928 */ -/* Fix: Proper soft keys are displayed */ - if(fm_data->opt_win) - displaySoftKeys(TxtSelect, TxtSoftBack); - else - displayMenuKeys(MENU_KEY_UP_DOWN_PLAY); - } - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - aud_state = 1; - break; - } - return MFW_EVENT_CONSUMED; -} - - - -/******************************************************************************* - $Function: mmi_fm_win_cb - - $Description: Handler for window events for the FileManager window - - $Returns: Execution status - - $Arguments: e -window event Id - w -current window -*******************************************************************************/ -int mmi_fm_win_cb (MfwEvt e, MfwWin *w) -{ - TRACE_FUNCTION ("mmi_fm_win_cb()"); -// TRACE_EVENT_P1("cur_dir->dirinfo.aud.state6 %d",cur_dir->dirinfo.aud.state); - - switch (e) - { - case MfwWinVisible: - break; - case MfwWinFocussed: - break; - case MfwWinDelete: - break; - default: - return MFW_EVENT_REJECTED; - } - return MFW_EVENT_CONSUMED; - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state7 %d",cur_dir->dirinfo.aud.state); -} - -/******************************************************************************* - $Function: mmi_fm_exec_cb - - $Description: Handler for events for the FileManager window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; - T_MMI_FM_STRUCT * fm_data = (T_MMI_FM_STRUCT *)win_data->user; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_exec_cb()"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state9 %d",cur_dir->dirinfo.aud.state); - - TRACE_EVENT_P1("Event %d",event ); - switch (event) - { - case FM_INIT: - mmi_fm_list_create(fm_data->root_win); - break; - case FM_DESTROY: - mmi_fm_destroy(fm_data->root_win); - break; - case LISTS_REASON_RESUME: - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGLIST_CHANGE_STS(MMI_IMGLIST_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - if(cur_dir->dir_type == OBJECT_TYPE_IMAGE_FOLDER) - { - displaySoftKeys(fm_data->menu_list_data->LeftSoftKey,fm_data->menu_list_data->RightSoftKey); - mmi_fm_set_mmi_plane_to_front(); - } - break; - case LISTS_REASON_SUSPEND: - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGLIST_CHANGE_STS(MMI_IMGLIST_STS_SUSPENDED); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - if(cur_dir->dir_type == OBJECT_TYPE_IMAGE_FOLDER) - { - mmi_fm_set_mmi_plane_to_front(); - } - break; - default: - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_destroy - - $Description: To destroy the FileManager window - - $Returns: None - - $Arguments: own_window -FileManager window -*******************************************************************************/ -static void mmi_fm_destroy(MfwHnd own_window) -{ - TRACE_FUNCTION ("mmi_fm_destroy()"); -// TRACE_EVENT_P1("cur_dir->dirinfo.aud.state10 %d",cur_dir->dirinfo.aud.state); - - if (own_window) - { - if ( fm_data ) - { - //Delete the mfw component of the FileManager - if ( fm_data->mfw_win!=NULL) - { - mfw_fm_delete(fm_data->mfw_win); - fm_data->mfw_win = NULL; - } - //Delete the FileManager window - if ( fm_data->root_win!=NULL) - { - win_delete (fm_data->root_win); - fm_data->root_win = NULL; - } - } - } - dspl_Enable(1); -} - -/******************************************************************************* - $Function: mmi_fm_list_create - - $Description: Start building the list - - $Returns: None - $Arguments: win -Parent window -*******************************************************************************/ -void mmi_fm_list_create( T_MFW_HND win) -{ - T_MFW_FM_STATUS status; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION("mmi_fm_list_create" ); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state34 %d",cur_dir->dirinfo.aud.state); - - //Read the objects in the given directory - status = mfw_fm_readDir(cur_dir->dir_path,cur_dir->dir_name,&cur_dir->num_objs,cur_dir->obj_list,fm_data->source,fm_data->app); - if( status == FM_DIR_DOESNOTEXISTS) - { - //Root directory does not exists, display dialog to user and exit FileManager application - TRACE_EVENT("Directory does not exists"); - mmi_fm_app_show_info(win,TxtFileNotLoaded,TxtNull,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - mmi_fm_list_destroy(fm_data->root_win); - SEND_EVENT(fm_data->root_win,FM_DESTROY,0,NULL); - return; - } - else if( cur_dir->num_objs == 0 ) - { - //Directory is empty. Display dialog ot teh user and return to previous directory /exit FileManager application - TRACE_EVENT("Empty Directory"); - /* Mar 30, 2007 DRT: OMAPS00122768 x0039928 */ - /* Fix: image viewer is deinitialized */ - if( (cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - mmi_fm_app_show_info(win,TxtFileNotLoaded,TxtNull,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_nofile_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - return; - } - //Read the properties for all the files - mfw_fm_readProperties(cur_dir->dir_path,cur_dir->dir_name,cur_dir->num_objs,cur_dir->obj_list,cur_dir->obj_properties,fm_data->source, fm_data->app); - fm_data->menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData)); - if(fm_data->menu_list_data == NULL ) - { - TRACE_EVENT("Memory failure."); - return; - } - fm_data->menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( (cur_dir->num_objs) * sizeof(T_MFW_MNU_ITEM) ); - if(fm_data->menu_list_data->List == NULL) - { - TRACE_EVENT("Memory failure."); - return; - } - //Based on the directory type, build the corresponding list - switch(cur_dir->dir_type) - { - case OBJECT_TYPE_AUDIO_FOLDER: - fm_data->list_win=mmi_fm_aud_list_create(win); - break; - case OBJECT_TYPE_IMAGE_FOLDER: - fm_data->list_win=mmi_fm_img_list_create(win); - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_list_destroy - - $Description: Frees the memory allocated during list creation - - $Returns: None - - $Arguments: own_window -FileManager window -*******************************************************************************/ -static void mmi_fm_list_destroy(MfwHnd own_window) -{ - T_MFW_WIN * win_data; - T_MMI_FM_STRUCT *fm_data; - int i=0; - T_FM_CURDIR *cur_dir; - - TRACE_FUNCTION ("mmi_fm_list_destroy()"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state8 %d",cur_dir->dirinfo.aud.state); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGLIST_CHANGE_STS(MMI_IMGLIST_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - if (own_window) - { - win_data = ((T_MFW_HDR *)own_window)->data; - fm_data = (T_MMI_FM_STRUCT *)win_data->user; - cur_dir = fm_data->cur_dir; - if ( fm_data ) - { - if (fm_data->menu_list_data != NULL) - { - #ifdef FF_MMI_UNICODE_SUPPORT - if (fm_data->app == FM_AUDIO) - { - for (i=0; inum_objs; i++) - { - mfwFree(fm_data->menu_list_data->List[i].str, (wstrlen(cur_dir->obj_list[i]->name_uc)+1)*2); - } - } - #endif - mfwFree( (U8 *)fm_data->menu_list_data->List,(cur_dir->num_objs) * sizeof(T_MFW_MNU_ITEM) ); - mfwFree ((U8 *)fm_data->menu_list_data, sizeof(ListMenuData)); - } - i=0; - while(cur_dir->obj_list[i] != NULL) - { - mfwFree((U8 *)cur_dir->obj_list[i], sizeof(T_FM_OBJ)); - cur_dir->obj_list[i] = NULL; - mfwFree((U8 *)cur_dir->obj_properties[i], sizeof(T_FM_OBJ_PROPERTIES)); - cur_dir->obj_properties[i] = NULL; - mfwFree((U8 *)cur_dir->obj_data[i], sizeof(T_FM_OBJ_DATA)); - cur_dir->obj_data[i] = NULL; - i++; - } - - } - } - -} - -/******************************************************************************* - $Function: mmi_fm_img_validate - - $Description: Validates the files in the image folder. Checks for thumbnail and updates - the flag for each object in the given image folder - - $Returns: None - - $Arguments: None -*******************************************************************************/ -BOOL mmi_fm_img_validate(void) -{ - USHORT count = 0; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - char *ext; - T_MFW_FM_STATUS status; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - BOOL thumbanil_generation= FALSE; - - TRACE_FUNCTION ("mmi_fm_img_validate()"); - for (count=0; countnum_objs; count++) - { - strcpy(curFilename,cur_dir->obj_list[count]->name); - cur_dir->obj_data[count] = (T_FM_OBJ_DATA*)mfwAlloc(sizeof(T_FM_OBJ_DATA)); - if(cur_dir->obj_list[count]->type == OBJECT_TYPE_FILE || cur_dir->obj_list[count]->type == OBJECT_TYPE_IMAGE) - { - ext=(char *)mmi_fm_get_ext(curFilename); - if(strcmp((const char*)ext, "jpg") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_IMAGE; - mmi_fm_get_filename(curFilename); - status=mfw_fm_checkThumbnail(curFilename,fm_data->source); - if(status == FM_FILE_EXISTS) - { - TRACE_EVENT("Thumbnail exists()"); - cur_dir->obj_data[count]->image.thumbnail = TRUE; - } - else - { - TRACE_EVENT("Thumbnail does not exists()"); - cur_dir->obj_data[count]->image.thumbnail = FALSE; - //Thumbnail generation required - thumbanil_generation = TRUE; - } - } - else - { - //Other unsupported files - cur_dir->obj_data[count]->image.thumbnail=FALSE; - } - } - else - { - cur_dir->obj_data[count]->image.thumbnail=FALSE; - } - } - return thumbanil_generation; -} - - -/******************************************************************************* - $Function: mmi_fm_img_list_create - - $Description: Creates the image files list - - $Returns: Created Window Pointer - - $Arguments: win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_img_list_create(T_MFW_HND win) -{ - USHORT file_count = 0, list_count=0; - BOOL thumbanil_generation= FALSE; - - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_img_list_create()"); - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGLIST_CHANGE_STS(MMI_IMGLIST_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - - //Traverse through the list to find out valid image objects in the given directory, - //and if thumbnail generation is needed - thumbanil_generation = mmi_fm_img_validate(); - cur_dir->startIndex = 0; - for (file_count=0; file_countnum_objs; file_count++) - { - if(cur_dir->obj_list[file_count]->type == OBJECT_TYPE_FILE || cur_dir->obj_list[file_count]->type == OBJECT_TYPE_IMAGE) - { - mnuInitDataItem(&fm_data->menu_list_data->List[list_count]); - fm_data->menu_list_data->List[list_count].icon=&fmIconFile; - fm_data->menu_list_data->List[list_count].str = (char *)cur_dir->obj_list[file_count]->name; - fm_data->menu_list_data->List[list_count].flagFunc = item_flag_none; - list_count++; - } - else if( cur_dir->obj_list[file_count]->type == OBJECT_TYPE_FOLDER) - { - mnuInitDataItem(&fm_data->menu_list_data->List[list_count]); - fm_data->menu_list_data->List[list_count].icon=&fmIconFolder; - fm_data->menu_list_data->List[list_count].str = (char *)cur_dir->obj_list[file_count]->name; - fm_data->menu_list_data->List[list_count].flagFunc = item_flag_none; - list_count++; - } - } - fm_data->menu_list_data->ListLength = list_count; - fm_data->menu_list_data->ListPosition = cur_dir->startIndex+1; - fm_data->menu_list_data->CursorPosition = cur_dir->startIndex+1; - if(cur_dir->num_objs < 3) - fm_data->menu_list_data->SnapshotSize =cur_dir->num_objs;// list_count; - else - fm_data->menu_list_data->SnapshotSize =3;// list_count; - fm_data->menu_list_data->Font = 1; - fm_data->menu_list_data->LeftSoftKey = TxtSoftOptions; - fm_data->menu_list_data->RightSoftKey = TxtSoftBack; - fm_data->menu_list_data->KeyEvents = KEY_ALL; - fm_data->menu_list_data->Reason = 0; - fm_data->menu_list_data->Strings = TRUE; - fm_data->menu_list_data->Attr = (MfwMnuAttr*)&FMList_Attrib; - fm_data->menu_list_data->autoDestroy = FALSE; - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - fm_data->list_state = FM_LIST_CREATE; - - //Create the List window with default file and folder icons - listIconsDisplayListMenu(win, fm_data->menu_list_data, (ListCbFunc)mmi_fm_img_list_cb, 0); - dspl_Enable(1); - cur_dir->currentIndex=cur_dir->startIndex; - TRACE_EVENT_P2("Num of obj %d, CurrIndex %d",cur_dir->num_objs, cur_dir->currentIndex); - if(thumbanil_generation && (fm_data->opt_type == FM_NONE || fm_data->opt_type == FM_OPEN)) - { - //Thumbnails need to be generated - mmi_fm_imgThmbGen_start(); - } - else - { - //Thumbnails are already generated - mmi_fm_imgThmbDraw_start(); - } - return fm_data->menu_list_data->win; -} - -/******************************************************************************* - $Function: mmi_fm_img_list_cb - - $Description: Call back function for the image list window - - $Returns: None - - $Arguments: Parent -window handler - List Data -Menu list data -*******************************************************************************/ -void mmi_fm_img_list_cb(T_MFW_HND * Parent, ListMenuData * ListData) -{ - T_FM_CURDIR *cur_dir ; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION("mmi_fm_img_list_cb"); - - cur_dir = fm_data->cur_dir; - mmi_fm_set_mmi_plane_to_front(); - TRACE_EVENT_P1("Reason %d",ListData->Reason); - switch(ListData->Reason) - { - case LISTS_REASON_SELECT: - cur_dir->currentIndex=ListData->CursorPosition; - if(ListData->selectKey==TRUE) - { - fm_data->opt_type=FM_OPEN; - switch(cur_dir->obj_list[cur_dir->currentIndex]->type) - { - case OBJECT_TYPE_IMAGE : - TRACE_EVENT("OBJECT_TYPE_IMAGE" ); - if(cur_dir->obj_data[cur_dir->currentIndex]->image.thumbnail == TRUE && - cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - mmi_fm_view_start(); - } - else - { - mmi_fm_app_show_info(fm_data->list_win,TxtNo,TxtThumbnail,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - break; - case OBJECT_TYPE_FOLDER: - case OBJECT_TYPE_IMAGE_FOLDER: - TRACE_EVENT("OBJECT_TYPE_FOLDER" ); - if( (cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - mmi_fm_open(); - break; - case OBJECT_TYPE_FILE: - TRACE_EVENT("OBJECT_TYPE_FILE" ); - mmi_fm_app_show_info(fm_data->list_win,TxtNo,TxtThumbnail,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - break; - } - } - else - { - TRACE_EVENT("Left Softkey" ); - fm_data->opt_type=FM_OPTIONS_FOLDER; - fm_data->opt_win=(T_MFW_HND)bookMenuStart(fm_data->root_win, FMMenuOptionAttributes(),0); - } - break; - case LISTS_REASON_BACK: - case LISTS_REASON_HANGUP: /* Apr 10, 2007 DRT: OMAPS00125325 x0039928 */ - TRACE_EVENT("Going back" ); - fm_data->opt_type=FM_BACK; - if( (cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW) && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd=FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - if(cur_dir->num_objs) - { - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - result = mfw_fm_imgViewer_destroy(); - } - else - /* Mar 30, 2007 DRT: OMAPS00122772 x0039928 */ - mmi_fm_goback(); - break; - case LISTS_REASON_DRAWCOMPLETE: - TRACE_EVENT("LISTS_REASON_DRAWCOMPLETE " ); - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - if ( MMI_IMGLIST_STS == MMI_IMGLIST_STS_SUSPENDED ) - { - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - } - else - { - - fm_data->lineheight = ListData->lineHeight; - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - if(fm_data->list_state == FM_LIST_UPDATE) - { - - /* Aug 06, 2007 DRT: OMAPS00140423, x0081909 (Deepak) - - In a list of 5 images when scrolled from 4th image to 3rd,the first file has the thumbnail of the fourth the, - second one has the fifth and the third one doesn't have a thumbnail */ - - /*Now thumbnails are displayed correctly and correspond to the name of the file */ - - if( (cur_dir->startIndex = (ListData->CursorPosition / ListData->SnapshotSize)*3) != 0) - { - cur_dir->currentIndex = cur_dir->startIndex; - } - else - { - cur_dir->startIndex = 0; - cur_dir->currentIndex = cur_dir->startIndex; - } - /* Aug 06, 2007 DRT: OMAPS00140423, x0081909 (Deepak) end */ - - mmi_fm_imgThmbDraw(); - } - else if(fm_data->list_state == FM_LIST_CREATE) - fm_data->list_state = FM_LIST_UPDATE; - } - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_view_start - - $Description: Starts drawing the image in QCIF width and height in a new window - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_view_start(void) -{ - TRACE_FUNCTION("mmi_fm_view_start"); - - fm_data->img_win = mmi_fm_view_create(); -} - -/******************************************************************************* - $Function: mmi_fm_view_create - - $Description: Creates a new window for drawing the image in QCIF width and height - - $Returns: None - - $Arguments: None -*******************************************************************************/ -T_MFW_HND mmi_fm_view_create(void) -{ - T_MMI_FM_IMGDRAW_STRUCT *imgDraw_data; - T_MFW_WIN * win; - - TRACE_FUNCTION("mmi_fm_view_create"); - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGVIEWER_CHANGE_STS(MMI_IMGVIEWER_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - - imgDraw_data = (T_MMI_FM_IMGDRAW_STRUCT *)mfwAlloc(sizeof(T_MMI_FM_IMGDRAW_STRUCT)); - - //Create a window for drawing the image in QCIF width and height - imgDraw_data->img_win = win_create (fm_data->list_win, 0, E_WIN_VISIBLE|E_WIN_SUSPEND|E_WIN_RESUME|E_WIN_DELETE, (T_MFW_CB)mmi_fm_view_win_cb); - - imgDraw_data ->mmi_control.dialog = (T_DIALOG_FUNC)mmi_fm_view_exec_cb; - imgDraw_data ->mmi_control.data = imgDraw_data ; - imgDraw_data->parent_win= fm_data->list_win; - win = (T_MFW_WIN *)getWinData(imgDraw_data->img_win); - win->user = (MfwUserDataPtr)imgDraw_data; - imgDraw_data->kbd = kbd_create (imgDraw_data->img_win,KEY_ALL|KEY_MAKE,(T_MFW_CB)mmi_fm_view_kbd_cb); - SEND_EVENT(imgDraw_data->img_win, FM_IMGDRAW_INIT, 0, (void *)NULL); - winShow(imgDraw_data->img_win ); - return imgDraw_data->img_win ; -} - -/******************************************************************************* - $Function: mmi_fm_view_exec_cb - - $Description: Img draw call back for the - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_view_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; - T_MMI_FM_IMGDRAW_STRUCT * imgDraw_data = (T_MMI_FM_IMGDRAW_STRUCT *)win_data->user; - - TRACE_FUNCTION("mmi_fm_view_exec_cb"); - TRACE_EVENT_P1("event %d",event); - switch (event) - { - case FM_IMGDRAW_INIT: - dspl_ClearAll(); - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - mmi_fm_set_mmi_plane_to_front(); - imgDraw_data->zoom = MFW_FM_ZOOM_LOW; - imgDraw_data->rotate = MFW_FM_ROTATE_0; - break; - case FM_IMGDRAW_DRAW: - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - if ( MMI_IMGVIEWER_STS == MMI_IMGVIEWER_STS_SUSPENDED ) - { - displayMenuKeys(MENU_KEY_ALL); - } - else - { - displayMenuKeys(MENU_KEY_WAIT); - mmi_fm_imgDraw(); - } - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - break; - case FM_IMGDRAW_SUSPEND: - mmi_fm_set_mmi_plane_to_front(); - break; - case FM_IMGDRAW_RESUME: - mmi_fm_set_mmi_plane_to_front(); - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - break; - case FM_IMGDRAW_DESTROY: - mmi_fm_view_destroy(imgDraw_data); - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_view_win_cb - - $Description: Handler for window events for the image window - - $Returns: Execution status - - $Arguments: e -window event Id - w -current window -*******************************************************************************/ -int mmi_fm_view_win_cb (MfwEvt e, MfwWin *w) -{ - T_MMI_FM_IMGDRAW_STRUCT * imgDraw_data = (T_MMI_FM_IMGDRAW_STRUCT *)w->user; - TRACE_FUNCTION ("mmi_fm_view_win_cb()"); - TRACE_EVENT_P1("event %d",e); - switch (e) - { - case MfwWinVisible: /* window is visible */ - SEND_EVENT(imgDraw_data->img_win, FM_IMGDRAW_DRAW, 0, (void *)NULL); - break; - case MfwWinSuspend: /* input focus / selected */ - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGVIEWER_CHANGE_STS(MMI_IMGVIEWER_STS_SUSPENDED); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - SEND_EVENT(imgDraw_data->img_win, FM_IMGDRAW_SUSPEND, 0, (void *)NULL); - break; - case MfwWinResume: /* input focus / selected */ - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGVIEWER_CHANGE_STS(MMI_IMGVIEWER_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - SEND_EVENT(imgDraw_data->img_win, FM_IMGDRAW_RESUME, 0, (void *)NULL); - break; - case MfwWinDelete: /* window will be deleted */ - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- Start --> */ - - MMI_IMGVIEWER_CHANGE_STS(MMI_IMGVIEWER_STS_NORMAL); - - /* August 03, 2007 DRT:OMAPS00138886 x0080701 (Bharat) -- End --> */ - break; - default: - return MFW_EVENT_REJECTED; - } - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_view_kbd_cb - - $Description: Handler for key events for the image window - - $Returns: Execution status - - $Arguments: e -window event Id - k -key event -*******************************************************************************/ -static int mmi_fm_view_kbd_cb (MfwEvt e, MfwKbd *k) -{ - T_MFW_HND win = mfwParent(mfw_header()); - T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; - T_MMI_FM_IMGDRAW_STRUCT * data = (T_MMI_FM_IMGDRAW_STRUCT *)win_data->user; - char currFile[FM_MAX_DIR_PATH_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION("mmi_fm_view_kbd_cb"); - - if (!(e & KEY_MAKE)) - { - return MFW_EVENT_CONSUMED; - } - if(cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW && cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - //Viewer UCP created successfully. Handle the key events - switch (k->code) - { - case KCD_LEFT: - fm_data->opt_type = FM_OPTIONS_FILE; - fm_data->opt_win = (T_MFW_HND)bookMenuStart(data->img_win, FMMenuOptionAttributes(),0); - break; - case KCD_RIGHT: - case KCD_HUP: - SEND_EVENT(win,FM_IMGDRAW_DESTROY,0,(void *)NULL); - break; - case KCD_MNUUP: - data->zoom = data->zoom * 2; - if(data->zoom > MFW_FM_ZOOM_MAX) - data->zoom = MFW_FM_ZOOM_MAX; - sprintf(currFile,"%s%s/%s",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex ]->name); - result = mfw_fm_imgViewer_setConfigs(currFile,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,data->zoom, data->rotate, fm_data->source); - if(result != FM_UCP_NO_ERROR) - { - //Error configuring the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error configuring Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - return MFW_EVENT_CONSUMED; - } - displayMenuKeys(MENU_KEY_WAIT); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - break; - case KCD_MNUDOWN: - data->zoom = data->zoom / 2; - if(data->zoom < MFW_FM_ZOOM_LOW) - data->zoom = MFW_FM_ZOOM_LOW; - sprintf(currFile,"%s%s/%s",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex ]->name); - result = mfw_fm_imgViewer_setConfigs(currFile,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,data->zoom, data->rotate,fm_data->source); - if(result != FM_UCP_NO_ERROR) - { - //Error configuring the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error configuring Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - return MFW_EVENT_CONSUMED; - } - displayMenuKeys(MENU_KEY_WAIT); - cur_dir->dirinfo.img.cmd =FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - break; - case KCD_MNURIGHT: - data->rotate = (T_FM_IMG_ROTATE) (data->rotate+1); - if(data->rotate > MFW_FM_ROTATE_270) - data->rotate = MFW_FM_ROTATE_0; - sprintf(currFile,"%s%s/%s",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex ]->name); - dspl_ClearAll(); - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - dspl_Enable(1); - mmi_fm_set_mmi_plane_to_front(); - result = mfw_fm_imgViewer_setConfigs(currFile,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,data->zoom, data->rotate,fm_data->source); - if(result != FM_UCP_NO_ERROR) - { - //Error configuring the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error configuring Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - return MFW_EVENT_CONSUMED; - } - displayMenuKeys(MENU_KEY_WAIT); - cur_dir->dirinfo.img.cmd =FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - break; - case KCD_MNULEFT: - data->rotate = (T_FM_IMG_ROTATE) (data->rotate-1); - if(data->rotate < MFW_FM_ROTATE_0) - data->rotate = MFW_FM_ROTATE_270; - sprintf(currFile,"%s%s/%s",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex ]->name); - dspl_ClearAll(); - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - dspl_Enable(1); - mmi_fm_set_mmi_plane_to_front(); - result = mfw_fm_imgViewer_setConfigs(currFile,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,data->zoom, data->rotate,fm_data->source); - if(result != FM_UCP_NO_ERROR) - { - //Error configuring the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error configuring Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - return MFW_EVENT_CONSUMED; - } - displayMenuKeys(MENU_KEY_WAIT); - cur_dir->dirinfo.img.cmd =FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - break; - } - } - else if(cur_dir->dirinfo.img.cmd == FM_UCP_NONE && cur_dir->dirinfo.img.state == FM_UCP_NONE) - { - //Viewer UCP was not created successfully. - switch (k->code) - { - case KCD_LEFT: - fm_data->opt_type=FM_OPTIONS_FILE; - fm_data->opt_win=(T_MFW_HND)bookMenuStart(data->img_win, FMMenuOptionAttributes(),0); - break; - case KCD_RIGHT: - case KCD_HUP: - SEND_EVENT(win,FM_IMGDRAW_DESTROY,0,(void *)NULL); - break; - } - } - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_view_destroy - - $Description: Destroys the image window and releases the allocated memory for the internal structure - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_view_destroy(T_MMI_FM_IMGDRAW_STRUCT * imgDraw_data) -{ - TRACE_FUNCTION("mmi_fm_view_destroy"); - - mmi_fm_set_mmi_plane_to_front(); - winDelete(imgDraw_data->img_win); - fm_data->img_win = NULL; - mfwFree((U8 *)imgDraw_data, sizeof(T_MMI_FM_IMGDRAW_STRUCT)); - -} - -/******************************************************************************* - $Function: mmi_fm_aud_validate - - $Description: Validates the files in the audio folder. - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_aud_validate(void) -{ - USHORT count = 0; - #ifdef FF_MMI_UNICODE_SUPPORT - T_WCHAR curFilename_uc[FM_MAX_OBJ_NAME_LENGTH]; - #else - char curFilename_u8[FM_MAX_OBJ_NAME_LENGTH]; - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - - char ext[FM_MAX_EXT_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_aud_validate()"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state03 %d",cur_dir->dirinfo.aud.state); - for (count=0; countnum_objs; count++) - { - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - wstrcpy(curFilename_uc,cur_dir->obj_list[count]->name_uc); - #else - strcpy(curFilename_u8,cur_dir->obj_list[count]->name); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - cur_dir->obj_data[count] = (T_FM_OBJ_DATA*)mfwAlloc(sizeof(T_FM_OBJ_DATA)); - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - TRACE_EVENT_P2("File %s type %d",cur_dir->obj_list[count]->name_uc,cur_dir->obj_list[count]->type); - #else - TRACE_EVENT_P2("File %s type %d",cur_dir->obj_list[count]->name,cur_dir->obj_list[count]->type); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - if(cur_dir->obj_list[count]->type == OBJECT_TYPE_FILE ) - { - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - convert_unicode_to_u8(wstrchr(curFilename_uc,'.')+1, ext); - #else - strcpy(ext, mmi_fm_get_ext(curFilename_u8)); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - if(strcmp((const char*)ext, "mid") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_MIDI; - } - else if(strcmp((const char*)ext, "mp3") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_MP3; - } - else if(strcmp((const char*)ext, "aac") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_AAC; - } /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */ - else if(strcmp((const char*)ext, "xmf") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_XMF; - } - else if(strcmp((const char*)ext, "imy") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_IMY; - } - else if(strcmp((const char*)ext, "mmf") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_MMF; - } - else if(strcmp((const char*)ext, "mxmf") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_MXMF; - } - else if(strcmp((const char*)ext, "sms") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_SMS; - } - else if(strcmp((const char*)ext, "wav") == 0 ) - { - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO_WAV; - } - else - cur_dir->obj_list[count]->type = OBJECT_TYPE_AUDIO; - } - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - TRACE_EVENT_P2("File %s type %d",cur_dir->obj_list[count]->name_uc,cur_dir->obj_list[count]->type); - #else - TRACE_EVENT_P2("File %s type %d",cur_dir->obj_list[count]->name,cur_dir->obj_list[count]->type); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - } -} - -/******************************************************************************* - $Function: mmi_fm_aud_list_cb - - $Description: Call back function for the audio list window - - $Returns: None - - $Arguments: Parent -window handler - List Data -Menu list data -*******************************************************************************/ - -void mmi_fm_aud_list_cb(T_MFW_HND * Parent, ListMenuData * ListData) -{ - T_MFW_WIN * win_data; - T_MMI_FM_STRUCT* fm_data; - T_FM_CURDIR *cur_dir; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - T_FM_AUD_STATE aud_state; - int state; - - - win_data = ((T_MFW_HDR *)Parent)->data; - fm_data = (T_MMI_FM_STRUCT*)win_data->user; - cur_dir = fm_data->cur_dir; - TRACE_EVENT_P1("Reason %d",ListData->Reason); - switch(ListData->Reason) - { - case LISTS_REASON_SELECT: - cur_dir->currentIndex=ListData->CursorPosition; - //Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - state = mmi_get_aud_state_status(); - if( state == FM_AUD_PLAY) - { - cur_dir->dirinfo.aud.state = FM_AUD_PLAY; - mmi_set_aud_state_status(FM_AUD_NONE); - } - /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */ - - //Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - //May28,07 DRT:OMAPS00132459 x0061560(sateeshg) - /*if(aud_state_back ) - { - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - cur_dir->dirinfo.aud.state = FM_AUD_PLAY; - aud_state_back=0; - }*/ - - - cur_dir->currentIndex=ListData->CursorPosition; - /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */ - - //May28,07 DRT:OMAPS00132459 x0061560(sateeshg) - /*if(aud_state_back ) - { - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - cur_dir->dirinfo.aud.state = FM_AUD_PLAY; - aud_state_back=0; - }*/ - - - if(ListData->selectKey==TRUE) - { - if(cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MIDI || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MP3 || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_AAC || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_XMF || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_IMY || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MMF || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MXMF || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_SMS || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_WAV) - { - - switch(cur_dir->dirinfo.aud.state) - { - case FM_AUD_NONE: - { - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - T_WCHAR filename_uc[FM_MAX_DIR_PATH_LENGTH]; - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - - cur_dir->dirinfo.aud.state = FM_AUD_PLAY; - switch(fm_data->source) - { - case FM_NOR_FLASH: - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - sprintf(currFilePath,"%s%s%s/","/FFS",cur_dir->dir_path,cur_dir->dir_name); - #else - sprintf(currFilePath,"%s%s%s/%s","/FFS",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - break; - - case FM_NORMS_FLASH: - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - sprintf(currFilePath,"%s%s%s/","/NOR",cur_dir->dir_path,cur_dir->dir_name); - #else - sprintf(currFilePath,"%s%s%s/%s","/NOR",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - break; - - case FM_NAND_FLASH: - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - sprintf(currFilePath,"%s%s%s/","/NAND",cur_dir->dir_path,cur_dir->dir_name); - #else - sprintf(currFilePath,"%s%s%s/%s","/NAND",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - break; - - case FM_T_FLASH: - #ifdef FF_MMI_UNICODE_SUPPORT - sprintf(currFilePath,"%s%s%s/","/MMC",cur_dir->dir_path,cur_dir->dir_name); - #else - sprintf(currFilePath,"%s%s%s/%s","/MMC",cur_dir->dir_path,cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - #endif - break; - } - - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - convert_u8_to_unicode(currFilePath, filename_uc); - wstrcat(filename_uc, cur_dir->obj_list[cur_dir->currentIndex]->name_uc); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - if(mmi_progress_bar == PB_OFF) - { - IsMP3Playing = TRUE;//Daisy tang added for Real Resume feature 20071107 - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - aud_state =mfw_fm_audPlay(filename_uc, cur_dir->obj_list[cur_dir->currentIndex]->type, mmi_progress_bar); - #else - aud_state =mfw_fm_audPlay(currFilePath, cur_dir->obj_list[cur_dir->currentIndex]->type, mmi_progress_bar); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - //Jun 28, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - /* //May28,07 DRT:OMAPS00132459 x0061560(sateeshg) - aud_state_back=1;*/ - if(aud_state == FM_AUD_NO_ERROR) - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - else - mmi_fm_app_show_info(Parent,TxtPlay,TxtFailed,TxtNull,TxtSoftBack,NULL,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else - { - if((cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MP3) || - (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_AAC) || - (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MIDI)) - { - IsMP3Playing = TRUE;//Daisy tang added for Real Resume feature 20071107 - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - aud_state =mfw_fm_audPlay(filename_uc, cur_dir->obj_list[cur_dir->currentIndex]->type, mmi_progress_bar); - #else - - aud_state =mfw_fm_audPlay(currFilePath, cur_dir->obj_list[cur_dir->currentIndex]->type, mmi_progress_bar); - #endif - if(aud_state == FM_AUD_NO_ERROR) - { - //Jul 09, 2007 DRT:OMAPS00138065 x0062174(Nimitha) - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - progress_bar(Parent); - } - //Jul 09, 2007 DRT:OMAPS00138065 x0062174(Nimitha) - else - mmi_fm_app_show_info(Parent,TxtPlay,TxtFailed,TxtNull,TxtSoftBack,NULL,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else - { - IsMP3Playing = TRUE;//Daisy tang added for Real Resume feature 20071107 - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - aud_state =mfw_fm_audPlay(filename_uc, cur_dir->obj_list[cur_dir->currentIndex]->type, PB_OFF); - #else - - aud_state =mfw_fm_audPlay(currFilePath, cur_dir->obj_list[cur_dir->currentIndex]->type, PB_OFF); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - - if(aud_state == FM_AUD_NO_ERROR) - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - else - mmi_fm_app_show_info(Parent,TxtPlay,TxtFailed,TxtNull,TxtSoftBack,NULL,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - } - } - break; - case FM_AUD_PLAY: - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - IsMP3Playing = FALSE;//Daisy tang added for Real Resume feature 20071107 - aud_state = mfw_fm_audStop(); - if(aud_state != FM_AUD_NO_ERROR) - mmi_fm_app_show_info(Parent,TxtError,TxtNull,TxtNull,TxtSoftBack,NULL,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - displayMenuKeys(MENU_KEY_UP_DOWN_PLAY); - - break; - } - } - else - { - mmi_fm_open(); - } - } - else - { - - if(cur_dir->dirinfo.aud.state == FM_AUD_PLAY) - { - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - IsMP3Playing = FALSE;//Daisy tang added for Real Resume feature 20071107 - mfw_fm_audStop(); - - } - fm_data->opt_type=FM_OPTIONS_FOLDER; - fm_data->opt_win=(T_MFW_HND)bookMenuStart(fm_data->root_win, FMMenuOptionAttributes(),0); - } - break; - case LISTS_REASON_BACK: - case LISTS_REASON_HANGUP: /* Apr 10, 2007 DRT: OMAPS00125325 x0039928 */ - fm_data->opt_type=FM_BACK; - - /* if(cur_dir->dirinfo.aud.state == FM_AUD_PLAY) - { - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - mfw_fm_audStop(); - }*/ - - //Jun 26, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - if(cur_dir->dirinfo.aud.state == FM_AUD_PLAY) - mmi_set_aud_state_status( FM_AUD_PLAY); - - mmi_fm_goback(); - - TRACE_EVENT_P1("cur_dir->dirinfo.aud.state222 %d",cur_dir->dirinfo.aud.state); - break; - case LISTS_REASON_DRAWCOMPLETE: - displaySoftKeys(TxtSoftOptions,TxtSoftBack); - //Jul 03, 2007 DRT:OMAPS00135749 x0062174(Nimitha) - state = mmi_get_aud_state_status(); - if( state == FM_AUD_PLAY) - displayMenuKeys(MENU_KEY_UP_DOWN_STOP); - else - displayMenuKeys(MENU_KEY_UP_DOWN_PLAY); - if(fm_data->list_state == FM_LIST_CREATE) - fm_data->list_state = FM_LIST_UPDATE; - /* Mar 15, 2007 DRT: OMAPS00120187 x0039928 */ - /* Fix: mfw_fm_audStop is commented */ - /* if(cur_dir->dirinfo.aud.state == FM_AUD_PLAY) - { - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - mfw_fm_audStop(); - }*/ - TRACE_FUNCTION("LISTS_REASON_DRAWCOMPLETE"); - break; - - } -} - -/******************************************************************************* - $Function: mmi_fm_aud_list_create - - $Description: Creates the audio files list - - $Returns: Created Window Pointer - - $Arguments: win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_aud_list_create(T_MFW_HND win) -{ - USHORT file_count = 0, list_count=0; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_aud_list_create()"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state04 %d",cur_dir->dirinfo.aud.state); - //Traverse through the list to find out valid audio objects in the given directory - mmi_fm_aud_validate(); - - for (file_count=0; file_countnum_objs; file_count++) - { - mnuInitDataItem(&fm_data->menu_list_data->List[list_count]); - - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - { - char *filename; - - filename = (char *)mfwAlloc((wstrlen(cur_dir->obj_list[file_count]->name_uc)+1)*2); - unicode_to_char_array(cur_dir->obj_list[file_count]->name_uc, filename); - - fm_data->menu_list_data->List[list_count].str = filename; - } - #else - fm_data->menu_list_data->List[list_count].str = (char *)cur_dir->obj_list[file_count]->name; - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - - //TRACE_EVENT_P2("file %s type %d", cur_dir->obj_list[file_count]->name_uc,cur_dir->obj_list[file_count]->type); - - fm_data->menu_list_data->List[list_count].flagFunc = item_flag_none; - /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */ - switch( cur_dir->obj_list[file_count]->type) - { - case OBJECT_TYPE_AUDIO: - case OBJECT_TYPE_AUDIO_MIDI: - case OBJECT_TYPE_AUDIO_MP3: - case OBJECT_TYPE_AUDIO_AAC: - case OBJECT_TYPE_AUDIO_XMF: - case OBJECT_TYPE_AUDIO_IMY: - case OBJECT_TYPE_AUDIO_MMF: - case OBJECT_TYPE_AUDIO_MXMF: - case OBJECT_TYPE_AUDIO_SMS: - case OBJECT_TYPE_AUDIO_WAV: - { - TRACE_EVENT("Audio"); - fm_data->menu_list_data->List[list_count].icon=&fmIconAudioFile; - // cur_dir->obj_list[file_count]->type = mfw_fm_aud_get_type(cur_dir->obj_list[file_count]->name); - } - list_count++; - break; - case OBJECT_TYPE_FILE: - { - TRACE_EVENT("File"); - fm_data->menu_list_data->List[list_count].icon=&fmIconFile; - } - list_count++; - break; - case OBJECT_TYPE_FOLDER: - { - TRACE_EVENT("Folder"); - fm_data->menu_list_data->List[list_count].icon=&fmIconFolder; - } - list_count++; - break; - } - - } - TRACE_EVENT_P1("Total %d",list_count); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state05 %d",cur_dir->dirinfo.aud.state); - fm_data->menu_list_data->ListLength = list_count; - fm_data->menu_list_data->ListPosition = cur_dir->startIndex+1; - fm_data->menu_list_data->CursorPosition = cur_dir->startIndex+1; - if(cur_dir->num_objs < 3) - fm_data->menu_list_data->SnapshotSize =cur_dir->num_objs;// list_count; - else - fm_data->menu_list_data->SnapshotSize =3;// list_count; - fm_data->menu_list_data->Font = 1; - fm_data->menu_list_data->LeftSoftKey = TxtSoftOptions; - fm_data->menu_list_data->RightSoftKey = TxtSoftBack; - fm_data->menu_list_data->KeyEvents = KEY_ALL; - fm_data->menu_list_data->Reason = 0; - fm_data->menu_list_data->Strings = TRUE; - fm_data->menu_list_data->Attr = (MfwMnuAttr*)&FMList_Attrib; - fm_data->menu_list_data->autoDestroy = FALSE; - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - cur_dir->dirinfo.aud.state = FM_AUD_NONE; - - /* OMAPS00151698,x0056422 */ - #ifdef FF_MMI_A2DP_AVRCP - mmi_set_aud_state_status(FM_AUD_NONE); - tGlobalBmiBtStruct.tAudioState =FM_AUD_NONE; - #endif //FF_MMI_A2DP_AVRCP - - fm_data->list_state = FM_LIST_CREATE; - //Create the List window with default file and folder icons - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - listIconsDisplayListMenu(win, fm_data->menu_list_data, (ListCbFunc)mmi_fm_aud_list_cb, TRUE); - #else - listIconsDisplayListMenu(win, fm_data->menu_list_data, (ListCbFunc)mmi_fm_aud_list_cb, FALSE); - #endif - /* January 29, 2008 DRT:OMAPS00156759 (x0082844) --> End*/ - - dspl_Enable(1); - return fm_data->menu_list_data->win; -} - -/******************************************************************************* - $Function: mmi_fm_nofile_cb - - $Description: Callback function for "no files loaded" dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_nofile_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - TRACE_FUNCTION("mmi_fm_nofile_cb" ); - - mmi_fm_goback(); -} - -/******************************************************************************* - $Function: mmi_fm_goback - - $Description: returns to the previous directory. - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_goback(void) -{ - char *strTempPtr; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION("mmi_fm_goback"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state1 %d",cur_dir->dirinfo.aud.state); - cur_dir->depth--; - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state2 %d",cur_dir->dirinfo.aud.state); - mmi_fm_set_mmi_plane_to_front(); - if( cur_dir->depth <= 0 ) - { - //Root directory, exit the list window - TRACE_EVENT("Root directory"); - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win ); - } - if(cur_dir->dir_type == OBJECT_TYPE_IMAGE_FOLDER) - { - if(cur_dir->dirinfo.img.ipMsl) - { - aci_delete(cur_dir->dirinfo.img.ipMsl); - cur_dir->dirinfo.img.ipMsl=0; - } - } - SEND_EVENT (fm_data->root_win, FM_DESTROY, 0, (void *)NULL); - } - else - { - - //Extract the previous directory path - strTempPtr=(char*) &cur_dir->dir_path + strlen(cur_dir->dir_path)-1; - *strTempPtr='\0'; - strTempPtr--; - while( *strTempPtr != '/' ) - { - strTempPtr = strTempPtr - 1; - } - strTempPtr++; - strcpy(cur_dir->dir_name,strTempPtr); - *strTempPtr='\0'; - - //Destroy the current list - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win ); - } - - //Populate the new list - fm_data->opt_type=FM_BACK; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - return; - } -} - -/******************************************************************************* - $Function: mmi_fm_goback - - $Description: populates the list from the selected directory - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_open (void) -{ - char curDir[FM_MAX_DIR_PATH_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - TRACE_FUNCTION ("mmi_fm_open()"); - if( (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE_FOLDER) || - (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_FOLDER) || - (cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_FOLDER) ) - { - cur_dir->depth ++; - //Update the current directory name with the selected directory - if(cur_dir->dir_name[0]!='\0') - { - sprintf(curDir,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - strcpy(cur_dir->dir_path,curDir); - strcpy(cur_dir->dir_name , cur_dir->obj_list[cur_dir->currentIndex]->name); - } - //Destroy the current list - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win); - } - //Populate the new list - fm_data->opt_type=FM_OPEN; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } - else if ( ( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE) || - ( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE)) - { - TRACE_EVENT("Invalid object found"); - } -} - -/******************************************************************************* - $Function: mmi_fm_rename - - $Description: Creates an editor for editing the selected objects name - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_rename (MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_rename()"); - - mmi_fm_rename_editor_create(parent_win); - - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_rename_editor_create - - $Description: Create an editor for editing the object name - - $Returns: Created Window Pointer - - $Arguments: parent_win -parent_win window -*******************************************************************************/ -T_MFW_HND mmi_fm_rename_editor_create(T_MFW_HND parent_win) -{ - T_MFW_HND win; - T_AUI_EDITOR_DATA editor_data; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_rename_editor_create"); - - fm_data->edt_buf = (char *)mfwAlloc(FM_MAX_OBJ_NAME_LENGTH); - - memset(&editor_data,'\0',sizeof(editor_data)); - //Update the editor buffer with the current object name -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ -#ifdef FF_MMI_UNICODE_SUPPORT - // unicode support is there only for audio files - if (fm_data->app == FM_AUDIO) - convert_unicode_to_u8(cur_dir->obj_list[cur_dir->currentIndex]->name_uc, fm_data->edt_buf); - else -#endif - strcpy(fm_data->edt_buf, cur_dir->obj_list[cur_dir->currentIndex]->name); - /* - ** Initialise the editor - */ - AUI_edit_SetDefault(&editor_data); - AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII, (UBYTE *)fm_data->edt_buf, FM_MAX_OBJ_NAME_LENGTH); - AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtDelete, TxtRename, NULL); - AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtSoftBack); - AUI_edit_SetEvents(&editor_data, 0, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_fm_rename_editor_exec_cb); - win = AUI_edit_Start(parent_win, &editor_data); - - - return win; - -} - -/******************************************************************************* - $Function: mmi_fm_rename_editor_exec_cb - - $Description: Event handler for the editor - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -static void mmi_fm_rename_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_MFW_FM_STATUS status = FM_NO_ERROR; - - char * fileExt; - BOOL valid_ext = FALSE; - - TRACE_FUNCTION ("mmi_fm_rename_editor_exec_cb()"); - - - switch (reason) - { - case INFO_KCD_LEFT: - { - /* - ** If there is no string entered, treat this as if it was a "Cancel" - */ - if (fm_data->edt_buf[0] == NULL) - { - mmi_fm_app_show_info(win,TxtRename,TxtFailed,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_rename_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else - { - //If the file extn is not jpg, send cancel event - fileExt = (char *)mmi_fm_get_ext((char *) fm_data->edt_buf); - switch(cur_dir->obj_list[cur_dir->currentIndex]->type) - { - case OBJECT_TYPE_IMAGE: - if(strcmp((const char*)fileExt, "jpg") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_MIDI: - if(strcmp((const char*)fileExt, "mid") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_MP3: - if(strcmp((const char*)fileExt, "mp3") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_AAC: - if(strcmp((const char*)fileExt, "aac") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */ - case OBJECT_TYPE_AUDIO_XMF: - if(strcmp((const char*)fileExt, "xmf") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_IMY: - if(strcmp((const char*)fileExt, "imy") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_MMF: - if(strcmp((const char*)fileExt, "mmf") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_MXMF: - if(strcmp((const char*)fileExt, "mxmf") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_SMS: - if(strcmp((const char*)fileExt, "sms") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_AUDIO_WAV: - if(strcmp((const char*)fileExt, "wav") != 0 ) - { - valid_ext = FALSE; - } - else - { - valid_ext = TRUE; - } - break; - case OBJECT_TYPE_FILE: - case OBJECT_TYPE_AUDIO: - case OBJECT_TYPE_FOLDER: - case OBJECT_TYPE_IMAGE_FOLDER: - case OBJECT_TYPE_AUDIO_FOLDER: - valid_ext = TRUE; - break; - } - if(valid_ext == FALSE) - { - TRACE_EVENT("Invalid Extension"); - mmi_fm_app_show_info( win,TxtNoExtension,TxtNull,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_rename_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else - { - if( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE&& - cur_dir->obj_data[cur_dir->currentIndex]->image.thumbnail == TRUE) - { - char t_oldFilename[FM_MAX_OBJ_NAME_LENGTH]; - char t_newFilename[FM_MAX_OBJ_NAME_LENGTH]; - - valid_ext = TRUE; - strcpy(t_oldFilename,cur_dir->obj_list[cur_dir->currentIndex]->name); - strcpy(t_newFilename,fm_data->edt_buf); - mmi_fm_get_filename(t_oldFilename); - mmi_fm_get_filename(t_newFilename); - status =mfw_fm_rename_image(cur_dir->dir_path, cur_dir->dir_name,t_oldFilename,t_newFilename,fm_data->source); - } - else - { - /* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - T_WCHAR oldFilename[FM_MAX_DIR_PATH_LENGTH]; - T_WCHAR newFilename[FM_MAX_DIR_PATH_LENGTH]; - - char oldFilename_u8[FM_MAX_DIR_PATH_LENGTH]; - char newFilename_u8[FM_MAX_DIR_PATH_LENGTH]; - - sprintf(oldFilename_u8,"%s%s/",cur_dir->dir_path, cur_dir->dir_name); - sprintf(newFilename_u8,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name, fm_data->edt_buf); - - // only audio files have unicode support at the moment - if (fm_data->app != FM_AUDIO) - strcat(oldFilename_u8, cur_dir->obj_list[cur_dir->currentIndex]->name); - - convert_u8_to_unicode(oldFilename_u8, oldFilename); - convert_u8_to_unicode(newFilename_u8, newFilename); - - if (fm_data->app == FM_AUDIO) - wstrcat(oldFilename, cur_dir->obj_list[cur_dir->currentIndex]->name_uc); - - #else - char oldFilename[FM_MAX_DIR_PATH_LENGTH]; - char newFilename[FM_MAX_DIR_PATH_LENGTH]; - sprintf(oldFilename,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - sprintf(newFilename,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name, fm_data->edt_buf); - #endif - status =mfw_fm_rename(oldFilename,newFilename,fm_data->source); - } - if(status == FM_NO_ERROR) - { - TRACE_EVENT("Rename Done"); - fm_data->list_state = FM_LIST_RECREATE; - mmi_fm_app_show_info(win,TxtRename,TxtDone,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_rename_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - - } - else - { - TRACE_EVENT("Rename Error"); - //Display the error message to the user - mmi_fm_app_show_info(win,TxtRename,TxtFailed,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_rename_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - } - } - } - break; - case INFO_KCD_RIGHT: - case INFO_KCD_HUP: - mmi_fm_rename_editor_destroy( ); - break; - default: - /* otherwise no action to be performed - */ - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_rename_cb - - $Description: Callback function for rename success/failure dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_rename_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_rename_cb()"); - - mmi_fm_rename_editor_destroy(); - - if(fm_data->list_state == FM_LIST_RECREATE) - { - //Delete the options window - if(fm_data->opt_win) - { - bookMenuDestroy(fm_data->opt_win); - fm_data->opt_win = NULL; - } - //Delete the image window - if(fm_data->img_win) - { - SEND_EVENT(fm_data->img_win,FM_IMGDRAW_DESTROY,0,(void *)NULL); - } - //Populate the list again - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win); - } - fm_data->opt_type=FM_RENAME; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } -} - -/******************************************************************************* - $Function: mmi_fm_rename_editor_destroy - - $Description: Frees the allocated memory - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_rename_editor_destroy(void) -{ - TRACE_FUNCTION ("mmi_fm_rename_editor_destroy"); - - mfwFree((U8 *)fm_data->edt_buf, FM_MAX_OBJ_NAME_LENGTH); -} - -/******************************************************************************* - $Function: mmi_fm_newdir - - $Description: Creates an editor for creating a new directory - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_newdir (MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_newdir()"); - - mmi_fm_newdir_editor_create(parent_win); - - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_newdir_editor_create - - $Description: Creates an editor for creating a new directory - - $Returns: Execution status - - $Arguments: parent_win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_newdir_editor_create(T_MFW_HND parent_win) -{ - T_MFW_HND win; - T_AUI_EDITOR_DATA editor_data; - - TRACE_FUNCTION ("mmi_fm_newdir_editor_create"); - - fm_data->edt_buf = (char *)mfwAlloc(FM_MAX_OBJ_NAME_LENGTH); - - memset(&editor_data,'\0',sizeof(editor_data)); - /* - ** Initialise the editor - */ - AUI_edit_SetDefault(&editor_data); - AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII,(UBYTE *) fm_data->edt_buf, FM_MAX_OBJ_NAME_LENGTH); - AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtDelete, TxtNull, NULL); - AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtSoftBack); - AUI_edit_SetEvents(&editor_data, 0, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_fm_newdir_editor_exec_cb); - win = AUI_edit_Start(parent_win, &editor_data); - return win; -} - -/******************************************************************************* - $Function: mmi_fm_newdir_editor_exec_cb - - $Description: Event handler for the editor - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -static void mmi_fm_newdir_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_MFW_FM_STATUS status = FM_NO_ERROR; - - TRACE_FUNCTION ("mmi_fm_newdir_exec_cb()"); - - switch (reason) - { - case INFO_KCD_LEFT: - if (fm_data->edt_buf[0] == NULL) - { - mmi_fm_app_show_info(win,TxtCreateDir,TxtFailed,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_newdir_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else - { - char dirname[FM_MAX_DIR_PATH_LENGTH]; - sprintf(dirname,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name,fm_data->edt_buf); - status =mfw_fm_newdir(dirname,fm_data->source); - if(status == FM_DIR_EXISTS) - mmi_fm_app_show_info(win,TxtDirectory,TxtExists,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_newdir_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - else - { - fm_data->list_state = FM_LIST_RECREATE; - mmi_fm_app_show_info(win,TxtDirectory,TxtCreated,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_newdir_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - - } - } - break; - case INFO_KCD_RIGHT: - case INFO_KCD_HUP: - mmi_fm_newdir_editor_destroy( ); - break; - - default: - /* otherwise no action to be performed - */ - break; - - - } -} - -/******************************************************************************* - $Function: mmi_fm_newdir_cb - - $Description: Callback function for new directory create success/failure dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_newdir_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - TRACE_FUNCTION ("mmi_fm_newdir_cb()"); - - mmi_fm_rename_editor_destroy(); - if(fm_data->list_state == FM_LIST_RECREATE) - { - //Delete the options window - if(fm_data->opt_win) - { - bookMenuDestroy(fm_data->opt_win); - fm_data->opt_win = NULL; - } - //Populate the list again - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win); - } - fm_data->opt_type=FM_NEWDIR; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } -} - -/******************************************************************************* - $Function: mmi_fm_newdir_editor_destroy - - $Description: Frees the allocated memory - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_newdir_editor_destroy(void) -{ - TRACE_FUNCTION ("mmi_fm_newdir_destroy"); - - mfwFree((U8 *)fm_data->edt_buf, FM_MAX_OBJ_NAME_LENGTH); -} - -/******************************************************************************* - $Function: mmi_fm_copy - - $Description: Removes the selected object after user confirmation and displays the updated - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_remove (MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_remove()"); - - mmi_fm_app_show_info(parent_win,TxtDelete,TxtFile,TxtSoftOK,TxtSoftBack,(T_VOID_FUNC)mmi_fm_remove_confirm_cb,FOREVER,KEY_LEFT|KEY_RIGHT | KEY_CLEAR | KEY_HUP); - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_remove_confirm_cb - - $Description: Callback function for remove confirmation dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_remove_confirm_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_MFW_FM_STATUS status = FM_NO_ERROR; - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_remove_confirm_cb()"); - - switch(reason) - { - case INFO_KCD_LEFT: - if( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE && - cur_dir->obj_data[cur_dir->currentIndex]->image.thumbnail == TRUE) - { - char filename[FM_MAX_OBJ_NAME_LENGTH]; - strcpy(filename,cur_dir->obj_list[cur_dir->currentIndex]->name); - mmi_fm_get_filename(filename); - status =mfw_fm_remove_image(cur_dir->dir_path, cur_dir->dir_name,filename,fm_data->source); - } - else - { - /* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ - #ifdef FF_MMI_UNICODE_SUPPORT - T_WCHAR filename[FM_MAX_DIR_PATH_LENGTH]; - char dirPath[FM_MAX_DIR_PATH_LENGTH]; - sprintf(dirPath, "%s%s/",cur_dir->dir_path, cur_dir->dir_name); - convert_u8_to_unicode(dirPath, filename); - wstrcat(filename, cur_dir->obj_list[cur_dir->currentIndex]->name_uc); - #else - char filename[FM_MAX_DIR_PATH_LENGTH]; - sprintf(filename,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - - #endif - /* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> End*/ - status =mfw_fm_remove(filename, fm_data->source); - } - switch(status) - { - case FM_NO_ERROR: - fm_data->list_state = FM_LIST_RECREATE; - mmi_fm_app_show_info(parent_win,TxtDelete,TxtDone,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_remove_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - - break; - case FM_DELETE_DIRNOTEMPTY: - mmi_fm_app_show_info(parent_win,TxtDirectory,TxtNotEmpty,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_remove_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - break; - default: - //Display the error message to the user - mmi_fm_app_show_info(parent_win,TxtDelete,TxtFailed,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_remove_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - break; - } - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_remove_cb - - $Description: Callback function for remove success/failure dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_remove_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_remove_cb()"); - - if(fm_data->list_state == FM_LIST_RECREATE) - { - //Delete the options window - if(fm_data->opt_win) - { - TRACE_EVENT("bookMenuDestroy"); - bookMenuDestroy(fm_data->opt_win); - fm_data->opt_win = NULL; - } - //Delete the image window - if(fm_data->img_win) - { - TRACE_EVENT("FM_IMGDRAW_DESTROY"); - SEND_EVENT(fm_data->img_win,FM_IMGDRAW_DESTROY,0,(void *)NULL); - } - //Populate the list again - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win); - TRACE_EVENT("List destroyed"); - } - fm_data->opt_type=FM_REMOVE; - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } - -} - -/******************************************************************************* - $Function: showCopyMove - - $Description: Shows or hides the copy and move option - - $Returns: 0 - shows the item, 1 - hides the item - - $Arguments: None -*******************************************************************************/ -USHORT showCopyMove( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("showCopyMove()"); - - /* Apr 05, 2007 DRT: OMAPS00124859 x0039928 */ - if(cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_FILE|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_AAC || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MIDI || - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MP3|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_XMF|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_IMY|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MMF|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_MXMF|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_SMS|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_AUDIO_WAV|| - cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE - ) - return 0; - else - return 1; -} - -/******************************************************************************* - $Function: showCreate - - $Description: Shows or hides the create directory option - - $Returns: 0 - shows the item, 1 - hides the item - - $Arguments: None -*******************************************************************************/ -USHORT showCreate( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - TRACE_FUNCTION ("showCreate()"); - - if (fm_data->opt_type == FM_OPTIONS_FOLDER) - { - return 0; - } - else - return 1; -} - -/******************************************************************************* - $Function: mmi_fm_copy - - $Description: Copies the selected object from source to destination - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_copy (MfwMnu* m, MfwMnuItem* i) -{ - TRACE_FUNCTION ("mmi_fm_copy()"); - - fm_data->opt_type = FM_COPY; - mmi_fm_displayDestDrive(); - - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_displayDestDrive - - $Description: Display the destination drive - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_displayDestDrive(void) -{ - T_MFW_HND parent_win = mfwParent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_displayDestDrive()"); - - fm_data->copymove.data = (T_MFW_FM_COPYMOVE_STRUCT *)mfwAlloc(sizeof(T_MFW_FM_COPYMOVE_STRUCT)); - fm_data->dest_data = (T_MMI_FM_DEST_STRUCT *)mfwAlloc(sizeof(T_MMI_FM_DEST_STRUCT)); - fm_data->dest_data->dest_drive_win=(T_MFW_HND)bookMenuStart( parent_win, FMDestDrivesListAttributes(), 0); - SEND_EVENT(fm_data->dest_data->dest_drive_win,ADD_CALLBACK,NULL,(void *)mmi_fm_displayDestDrive_cb); - -} -/******************************************************************************* - $Function: mmi_fm_displayDestDrive_cb - - $Description: Callback function for the destination Directory window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_displayDestDrive_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - TRACE_FUNCTION("mmi_fm_dest_root_folders_cb"); - - mfwFree((U8 *)fm_data->copymove.data, sizeof(T_MFW_FM_COPYMOVE_STRUCT)); - mfwFree((U8 *)fm_data->dest_data , sizeof (T_MMI_FM_DEST_STRUCT)); - fm_data->dest_data = NULL; -} - -/******************************************************************************* - $Function: mmi_fm_dest_root_folders - - $Description: Display the destination root folders - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_dest_root_folders(MfwMnu* mnu, MfwMnuItem* item) -{ - T_MFW_HND parent_win; - - TRACE_FUNCTION("mmi_fm_dest_root_folders" ); - - parent_win = mfwParent(mfw_header()); - fm_data->dest_data->destination= (T_FM_DEVICE_TYPE)mnu->lCursor[mnu->level]; - fm_data->dest_data->dest_dir = (T_FM_DESTDIR *)mfwAlloc(sizeof(T_FM_DESTDIR)); - fm_data->dest_data->dest_rootfolderlist_win=(T_MFW_HND)bookMenuStart( parent_win, FMDestRootFolderAttributes(), 0); - SEND_EVENT(fm_data->dest_data->dest_rootfolderlist_win,ADD_CALLBACK,NULL,(void *)mmi_fm_dest_root_folders_cb); - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_dest_root_folders_cb - - $Description: Callback function for the root Image, Audio Directory window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_dest_root_folders_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - TRACE_FUNCTION("mmi_fm_dest_root_folders_cb"); - - mfwFree((U8 *)fm_data->dest_data->dest_dir , sizeof (T_FM_DESTDIR)); - fm_data->dest_data->dest_dir = NULL; -} - -/******************************************************************************* - $Function: mmi_fm_dest_display - - $Description: Displays the folders given path - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_dest_display(MfwMnu* mnu, MfwMnuItem* item) -{ - T_FM_DESTDIR *dest_dir = fm_data->dest_data->dest_dir; - - TRACE_FUNCTION("mmi_fm_dest_display"); - - dest_dir->depth = 0; - dest_dir->dir_type = OBJECT_TYPE_NONE; - dest_dir->currentIndex = 0; - dest_dir->num_objs = 0; - switch(mnu->lCursor[mnu->level]) - { - case 0: - fm_data->dest_data->app = FM_IMAGE; - dest_dir->dir_type=OBJECT_TYPE_IMAGE_FOLDER; - break; - case 1: - fm_data->dest_data->app = FM_AUDIO; - dest_dir->dir_type=OBJECT_TYPE_AUDIO_FOLDER; - break; - } - //Based on the selected drive, load the root image, audio directory names - switch(fm_data->dest_data->destination) - { - case FM_NOR_FLASH: - if(dest_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( dest_dir->dir_path, NORDIR); - strcpy( dest_dir->dir_name, NORDIR_IMG); - } - else if(dest_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( dest_dir->dir_path, NORDIR); - strcpy( dest_dir->dir_name, NORDIR_AUD); - } - break; - case FM_NORMS_FLASH: - if(dest_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( dest_dir->dir_path, NORMSDIR); - strcpy( dest_dir->dir_name, NORMSDIR_IMG); - } - else if(dest_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( dest_dir->dir_path, NORMSDIR); - strcpy( dest_dir->dir_name, NORMSDIR_AUD); - } - break; - case FM_NAND_FLASH: - if(dest_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( dest_dir->dir_path, NANDDIR); - strcpy( dest_dir->dir_name, NANDDIR_IMG); - } - else if(dest_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( dest_dir->dir_path, NANDDIR); - strcpy( dest_dir->dir_name, NANDDIR_AUD); - } - break; - case FM_T_FLASH: - if(dest_dir->dir_type==OBJECT_TYPE_IMAGE_FOLDER) - { - strcpy( dest_dir->dir_path, TFLASHDIR); - strcpy( dest_dir->dir_name, TFLASHDIR_IMG); - } - else if(dest_dir->dir_type==OBJECT_TYPE_AUDIO_FOLDER) - { - strcpy( dest_dir->dir_path, TFLASHDIR); - strcpy( dest_dir->dir_name, TFLASHDIR_AUD); - } - break; - } - TRACE_EVENT_P2("Path %s Dir %s", dest_dir->dir_path,dest_dir->dir_name); - dest_dir->depth = 1; - mmi_fm_dest_start( fm_data->dest_data->dest_rootfolderlist_win); - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_dest_start - - $Description: To create the destination FileManager window - - $Returns: Created Window Pointer - - $Arguments: parent_win -Parent Window -*******************************************************************************/ -static T_MFW_HND mmi_fm_dest_start( T_MFW_HND parent_win) -{ - TRACE_FUNCTION("mmi_fm_dest_start"); - - //Creating the root window for FileManager - fm_data->dest_data->dest_root_win=mmi_fm_dest_create(parent_win); - - if (fm_data->dest_data->dest_root_win NEQ NULL) - { - SEND_EVENT (fm_data->dest_data->dest_root_win, FM_INIT, 0, (void *)NULL); - } - return fm_data->dest_data->dest_root_win; -} - -/******************************************************************************* - $Function: mmi_fm_dest_create - - $Description: To create the destination FileManager window - - $Returns: Created Window Pointer - - $Arguments: parent_win -Parent Window -*******************************************************************************/ -static T_MFW_HND mmi_fm_dest_create (T_MFW_HND parent_win) -{ - - T_MFW_WIN * win; - T_MMI_FM_DEST_STRUCT *dest_data = fm_data->dest_data; - - TRACE_FUNCTION("mmi_fm_dest_create"); - - //Creating the root window for FileManager - dest_data->dest_root_win = win_create (parent_win, 0, E_WIN_VISIBLE, (T_MFW_CB)mmi_fm_dest_win_cb); - /* - connect the dialog data to the MFW-window - */ - dest_data->mmi_control.dialog = (T_DIALOG_FUNC)mmi_fm_dest_exec_cb; - dest_data->mmi_control.data = dest_data; - dest_data->parent_win= parent_win; - win = ((T_MFW_HDR *)dest_data->dest_root_win)->data; - win->user = (void *)dest_data; - - winShow(dest_data->dest_root_win); - return dest_data->dest_root_win; -} - -/******************************************************************************* - $Function: mmi_fm_dest_win_cb - - $Description: Handler for window events for the destination FileManager window - - $Returns: Execution status - - $Arguments: e -window event Id - w -current window -*******************************************************************************/ -int mmi_fm_dest_win_cb (MfwEvt e, MfwWin *w) -{ - TRACE_FUNCTION ("mmi_fm_dest_win_cb()"); - - switch (e) - { - case MfwWinVisible: - break; - case MfwWinFocussed: - break; - case MfwWinDelete: - break; - default: - return MFW_EVENT_REJECTED; - } - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_dest_exec_cb - - $Description: Handler for events for the destination FileManager window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_dest_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - T_MFW_WIN * win_data = ((T_MFW_HDR *) win)->data; - T_MMI_FM_DEST_STRUCT * dest_data = (T_MMI_FM_DEST_STRUCT *)win_data->user; - - - TRACE_FUNCTION ("mmi_fm_dest_exec_cb()"); - - TRACE_EVENT_P1("Event %d",event ); - switch (event) - { - case FM_INIT: - dest_data->dest_list_win=mmi_fm_dest_list_create(dest_data->dest_root_win); - break; - case FM_DESTROY: - //Destroy the current list - mmi_fm_dest_destroy(dest_data->dest_root_win); - break; - default: - break; - } -} - -/******************************************************************************* - $Function: mmi_fm_dest_destroy - - $Description: To destroy the destination FileManager window - - $Returns: None - - $Arguments: own_window -FileManager window -*******************************************************************************/ -static void mmi_fm_dest_destroy(MfwHnd own_window) -{ - T_MMI_FM_DEST_STRUCT *dest_data; - - TRACE_FUNCTION ("mmi_fm_dest_destroy()"); - dest_data = fm_data->dest_data; - - if ( dest_data ) - { - //Delete the dest_root_win window - win_delete (dest_data->dest_root_win); - dest_data->dest_root_win = NULL; - } - dspl_Enable(1); -} -/******************************************************************************* - $Function: mmi_fm_dest_list_create - - $Description: Start building the destination list - - $Returns: Current created window - - $Arguments: win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_dest_list_create( T_MFW_HND win) -{ - T_MMI_FM_DEST_STRUCT *dest_data = fm_data->dest_data; - T_FM_DESTDIR *dest_dir = fm_data->dest_data->dest_dir; - USHORT file_count = 0, list_count=0; - - TRACE_FUNCTION("mmi_fm_dest_list_create" ); - - //Read the objects in the given directory - mfw_fm_readDir(dest_dir->dir_path,dest_dir->dir_name,&dest_dir->num_objs,dest_dir->obj_list,fm_data->dest_data->destination, fm_data->dest_data->app); - - //Read the file/folder - mfw_fm_readFileFolders(dest_dir->dir_path,dest_dir->dir_name,dest_dir->num_objs,dest_dir->obj_list,fm_data->dest_data->destination); - dest_data->dest_menu_list_data = (ListMenuData *)ALLOC_MEMORY(sizeof(ListMenuData)); - if(dest_data->dest_menu_list_data == NULL ) - { - TRACE_EVENT("Memory failure."); - return NULL; - } - dest_data->dest_menu_list_data->List = (T_MFW_MNU_ITEM *)ALLOC_MEMORY( (dest_dir->num_objs+1) * sizeof(T_MFW_MNU_ITEM) ); - if(dest_data->dest_menu_list_data->List == NULL) - { - TRACE_EVENT("Memory failure."); - return NULL; - } - - for (file_count=0; file_countnum_objs; file_count++) - { - if( dest_dir->obj_list[file_count]->type == OBJECT_TYPE_FOLDER) - { - mnuInitDataItem(&dest_data->dest_menu_list_data->List[list_count]); - dest_data->dest_menu_list_data->List[list_count].str = (char *)dest_dir->obj_list[file_count]->name; - dest_data->dest_menu_list_data->List[list_count].flagFunc = item_flag_none; - dest_data->dest_menu_list_data->List[list_count].icon=&fmIconFolder; - list_count++; - } - } - mnuInitDataItem(&dest_data->dest_menu_list_data->List[list_count]); - if(fm_data->opt_type == FM_COPY) - dest_data->dest_menu_list_data->List[list_count].str = "[Copy Here]"; - else - dest_data->dest_menu_list_data->List[list_count].str = "[Move Here]"; - dest_data->dest_menu_list_data->List[list_count].flagFunc = item_flag_none; - dest_data->dest_menu_list_data->List[list_count].icon=NULL; - list_count++; - TRACE_EVENT_P1("Total %d",list_count); - dest_data->dest_menu_list_data->ListLength = list_count; - dest_data->dest_menu_list_data->ListPosition = 1; - dest_data->dest_menu_list_data->CursorPosition = 1; - if((dest_dir->num_objs+1) < 3) - dest_data->dest_menu_list_data->SnapshotSize =dest_dir->num_objs+1;// list_count; - else - dest_data->dest_menu_list_data->SnapshotSize =3;// list_count; - dest_data->dest_menu_list_data->Font = 1; - if(fm_data->opt_type == FM_COPY) - dest_data->dest_menu_list_data->LeftSoftKey = TxtCopy; - else - dest_data->dest_menu_list_data->LeftSoftKey = TxtMove; - dest_data->dest_menu_list_data->RightSoftKey = TxtSoftBack; - dest_data->dest_menu_list_data->KeyEvents = KEY_ALL; - dest_data->dest_menu_list_data->Reason = 0; - dest_data->dest_menu_list_data->Strings = TRUE; - dest_data->dest_menu_list_data->Attr = (MfwMnuAttr*)&FMList_Attrib; - dest_data->dest_menu_list_data->autoDestroy = FALSE; - dest_data->dest_menu_list_data->block_keys = (BOOL)FALSE; - //Create the List window with default file and folder icons - listIconsDisplayListMenu(win, dest_data->dest_menu_list_data, (ListCbFunc)mmi_fm_dest_list_cb, 0); - dspl_Enable(1); - return dest_data->dest_menu_list_data->win; -} - -/******************************************************************************* - $Function: mmi_fm_nofile_cb - - $Description: Callback function for "no files loaded" dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_destnofile_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - TRACE_FUNCTION("mmi_fm_nofile_cb" ); - - mmi_fm_destgoback(); -} - -/******************************************************************************* - $Function: mmi_fm_dest_list_cb - - $Description: Call back function for the destination list window - - $Returns: None - - $Arguments: Parent -window handler - List Data -Menu list data -*******************************************************************************/ -void mmi_fm_dest_list_cb(T_MFW_HND * Parent, ListMenuData * ListData) -{ - T_MFW_WIN * win_data; - T_MMI_FM_DEST_STRUCT* dest_data; - T_FM_DESTDIR *dest_dir; - char curDir[FM_MAX_DIR_PATH_LENGTH]; - - TRACE_FUNCTION("mmi_fm_dest_list_cb" ); - - win_data = ((T_MFW_HDR *)Parent)->data; - dest_data = (T_MMI_FM_DEST_STRUCT*)win_data->user; - dest_dir = dest_data->dest_dir; - TRACE_EVENT_P3("Reason %d length %d cur %d",ListData->Reason,ListData->ListLength , ListData->CursorPosition); - switch(ListData->Reason) - { - case LISTS_REASON_SELECT: - if(ListData->CursorPosition == (ListData->ListLength-1) ) - { //Selecting the [Copy here] item - mmi_fm_copy_create(NULL); - } - else - { - dest_dir->currentIndex=ListData->CursorPosition; - if(ListData->selectKey==TRUE) - { - //Update the current directory name with the selected directory - if(dest_dir->dir_name[0]!='\0') - { - sprintf(curDir,"%s%s/",dest_dir->dir_path,dest_dir->dir_name); - strcpy(dest_dir->dir_path,curDir); - strcpy(dest_dir->dir_name , dest_data->dest_menu_list_data->List[dest_dir->currentIndex].str); - } - //Destroy the current list - if(dest_data->dest_list_win) - { - listsIconsDestroy(dest_data->dest_list_win); - dest_data->dest_list_win=NULL; - mmi_fm_dest_list_destroy( dest_data->dest_root_win); - } - //Populate the new list - SEND_EVENT (dest_data->dest_root_win, FM_INIT, 0, (void *)NULL); - } - else - { - mmi_fm_copy_create(dest_data->dest_menu_list_data->List[dest_dir->currentIndex].str); - } - } - break; - case LISTS_REASON_BACK: - case LISTS_REASON_HANGUP: /* Apr 10, 2007 DRT: OMAPS00125325 x0039928 */ - mmi_fm_destgoback(); - break; - case LISTS_REASON_DRAWCOMPLETE: - if(fm_data->opt_type == FM_COPY) - displaySoftKeys(TxtCopy,TxtSoftBack); - else - displaySoftKeys(TxtMove,TxtSoftBack); - break; - - } -} -/******************************************************************************* - $Function: mmi_fm_destgoback - - $Description: returns to the previous directory. - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_destgoback(void) -{ - char *strTempPtr; - T_FM_DESTDIR *dest_dir = fm_data->dest_data->dest_dir; - T_MMI_FM_DEST_STRUCT* dest_data = fm_data->dest_data; - - TRACE_FUNCTION("mmi_fm_destgoback"); - - dest_dir->depth--; - mmi_fm_set_mmi_plane_to_front(); - if( dest_dir->depth <= 0 ) - { - //Root directory, exit the list window - TRACE_EVENT("Root directory"); - if(dest_data->dest_list_win) - { - listsIconsDestroy( dest_data->dest_list_win); - dest_data->dest_list_win=NULL; - mmi_fm_dest_list_destroy( dest_data->dest_root_win ); - } - SEND_EVENT ( dest_data->dest_root_win, FM_DESTROY, 0, (void *)NULL); - winIconsLists = fm_data->list_win; - } - else - { - - //Extract the previous directory path - strTempPtr=(char*) &dest_dir->dir_path + strlen(dest_dir->dir_path)-1; - *strTempPtr='\0'; - strTempPtr--; - while( *strTempPtr != '/' ) - { - strTempPtr = strTempPtr - 1; - } - strTempPtr++; - strcpy(dest_dir->dir_name,strTempPtr); - *strTempPtr='\0'; - - //Destroy the current list - if( dest_data->dest_list_win) - { - listsIconsDestroy( dest_data->dest_list_win); - dest_data->dest_list_win=NULL; - mmi_fm_dest_list_destroy( dest_data->dest_root_win ); - } - //Populate the new list - SEND_EVENT ( dest_data->dest_root_win, FM_INIT, 0, (void *)NULL); - return; - } -} - -/******************************************************************************* - $Function: mmi_fm_dest_list_destroy - - $Description: Frees the memory allocated during destination list creation - - $Returns: None - - $Arguments: own_window -FileManager window -*******************************************************************************/ -static void mmi_fm_dest_list_destroy(MfwHnd own_window) -{ - T_MFW_WIN * win_data; - T_MMI_FM_DEST_STRUCT* dest_data; - int i=0; - T_FM_DESTDIR *dest_dir; - - TRACE_FUNCTION ("mmi_fm_dest_list_destroy()"); - - if (own_window) - { - win_data = ((T_MFW_HDR *)own_window)->data; - dest_data = (T_MMI_FM_DEST_STRUCT *)win_data->user; - dest_dir = dest_data->dest_dir; - if ( dest_data ) - { - if (dest_data->dest_menu_list_data != NULL) - { - mfwFree( (U8 *)dest_data->dest_menu_list_data->List,(dest_dir->num_objs+1) * sizeof(T_MFW_MNU_ITEM) ); - mfwFree ((U8 *)dest_data->dest_menu_list_data, sizeof(ListMenuData)); - } - i=0; - while(dest_dir->obj_list[i] != NULL) - { - mfwFree((U8 *)dest_dir->obj_list[i], sizeof(T_FM_OBJ)); - dest_dir->obj_list[i] = NULL; - i++; - } - - } - } -} - -/******************************************************************************* - $Function: mmi_fm_copy_create - - $Description: To start copying the file - - $Returns: None - - $Arguments: dest_folder - destination folder name -*******************************************************************************/ -void mmi_fm_copy_create(char * dest_folder) -{ - T_FM_DESTDIR *dest_dir = fm_data->dest_data->dest_dir; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_MMI_FM_DEST_STRUCT* dest_data =fm_data->dest_data; - - TRACE_FUNCTION ("mmi_fm_copy_create()"); - - //User has selected the destination. -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ -#ifdef FF_MMI_UNICODE_SUPPORT - fm_data->copymove.data->sourceFile= (T_WCHAR *)mfwAlloc(FM_MAX_DIR_PATH_LENGTH); - fm_data->copymove.data->destinationFile = (T_WCHAR *)mfwAlloc(FM_MAX_DIR_PATH_LENGTH); - - { - char destFolder[FM_MAX_DIR_PATH_LENGTH]; - char sourceFolder[FM_MAX_DIR_PATH_LENGTH]; - T_WCHAR *dest, *source; - - dest = fm_data->copymove.data->destinationFile; - source = fm_data->copymove.data->sourceFile; - - if(dest_folder == NULL) - sprintf(destFolder,"%s%s/",dest_dir->dir_path,dest_dir->dir_name); - else - sprintf(destFolder,"%s%s/%s/",dest_dir->dir_path,dest_dir->dir_name,dest_folder); - - sprintf(sourceFolder,"%s%s/",cur_dir->dir_path, cur_dir->dir_name); - - // unicode support is there for audio only at the moment - if (fm_data->app == FM_AUDIO) - { - //destination file - convert_u8_to_unicode(destFolder, dest); - wstrcat(dest, cur_dir->obj_list[cur_dir->currentIndex]->name_uc); - - //source file - convert_u8_to_unicode(sourceFolder, source); - wstrcat(source, cur_dir->obj_list[cur_dir->currentIndex]->name_uc); - } - else - { - //destination file - strcat(destFolder, cur_dir->obj_list[cur_dir->currentIndex]->name); - convert_u8_to_unicode(destFolder, dest); - - //source file - strcat(sourceFolder, cur_dir->obj_list[cur_dir->currentIndex]->name); - convert_u8_to_unicode(sourceFolder, source); - } - } -#else - fm_data->copymove.data->sourceFile= (char *)mfwAlloc(FM_MAX_DIR_PATH_LENGTH); - fm_data->copymove.data->destinationFile = (char *)mfwAlloc(FM_MAX_DIR_PATH_LENGTH); - if(dest_folder == NULL) - sprintf( fm_data->copymove.data->destinationFile,"%s%s/%s",dest_dir->dir_path,dest_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); - else - sprintf( fm_data->copymove.data->destinationFile,"%s%s/%s/%s",dest_dir->dir_path,dest_dir->dir_name,dest_folder,cur_dir->obj_list[cur_dir->currentIndex]->name); - sprintf( fm_data->copymove.data->sourceFile,"%s%s/%s",cur_dir->dir_path, cur_dir->dir_name,cur_dir->obj_list[cur_dir->currentIndex]->name); -#endif -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> End*/ - TRACE_EVENT_P2("Source %s Destination %s", fm_data->copymove.data->sourceFile, fm_data->copymove.data->destinationFile); - if(dest_data->dest_list_win) - { - listsIconsDestroy(dest_data->dest_list_win); - dest_data->dest_list_win=NULL; - mmi_fm_dest_list_destroy( dest_data->dest_root_win ); - winIconsLists = fm_data->list_win; - } - SEND_EVENT (dest_data->dest_root_win, FM_DESTROY, 0, (void *)NULL); - //Destroy the destinatin root folder list - bookMenuDestroy(dest_data->dest_rootfolderlist_win); - dest_data->dest_rootfolderlist_win = NULL; - //Destroy the destination drive list - bookMenuDestroy(dest_data->dest_drive_win); - dest_data->dest_drive_win = NULL; - //Free the buffer allocated for destination directory lists - mfwFree((U8 *)dest_data->dest_dir , sizeof (T_FM_DESTDIR)); - dest_data->dest_dir = NULL; - /* Mar 15, 2007 DRT: OMAPS00120225 x0039928 */ - /* Fix: Condition added to check source and destination device are same */ -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ -#ifdef FF_MMI_UNICODE_SUPPORT - if((wstrcmp(fm_data->copymove.data->sourceFile,fm_data->copymove.data->destinationFile) == 0) -#else - if((strcmp(fm_data->copymove.data->sourceFile,fm_data->copymove.data->destinationFile) == 0) -#endif -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> End*/ - && (fm_data->source == fm_data->dest_data->destination)) - { - mmi_fm_app_show_info(0,TxtSourceDest,TxtSame,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - mmi_fm_copy_destroy(fm_data->copymove.data->state); - } - else - { - mmi_fm_copy_start(); - } -} - -/******************************************************************************* - $Function: mmi_fm_copy_start - - $Description: To start copying the file - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_copy_start(void) -{ - T_MFW_HND parent_win = mfwParent(mfw_header()); - TRACE_FUNCTION ("mmi_fm_copy_start()"); - - fm_data->copymove.data->source_type = fm_data->source; - fm_data->copymove.data->sourceFileSize = fm_data->cur_dir->obj_properties[fm_data->cur_dir->currentIndex]->size; - fm_data->copymove.data->destination_type = fm_data->dest_data->destination; - fm_data->copymove.data->buf = (char *)mfwAlloc(FM_COPY_BUFFER_SIZE); - fm_data->copymove.data->state = mfw_fm_copy_start(fm_data->copymove.data); - if(fm_data->copymove.data->state == FM_COPY_PROGRESS) - { - fm_data->copymove.win = mmi_fm_copy_dialog_create(parent_win); - SEND_EVENT(fm_data->copymove.win, FM_COPY_INIT, 0, (void *)NULL); - fm_data->copymove.timer = timCreate( 0, FM_COPYMOVE_TIMER, (MfwCb)mmi_fm_copy_timer_cb ); - timStart(fm_data->copymove.timer) ; - } - else if(fm_data->copymove.data->state == FM_COPY_DONE ||fm_data->copymove.data->state == FM_COPY_ERROR||fm_data->copymove.data->state == FM_COPY_NONE)//April 27, 2007 DRT:OMAPS00128836 x0073106 - { - mmi_fm_copy_end(); - } -} - -/******************************************************************************* - $Function: mmi_fm_copy_dialog_create - - $Description: Creates a new window for showing the progress of copying - - $Returns: None - - $Arguments: None -*******************************************************************************/ -T_MFW_HND mmi_fm_copy_dialog_create(T_MFW_HND parent_win) -{ - T_MMI_FM_COPY_STRUCT *copy_data; - T_MFW_WIN * win; - - TRACE_FUNCTION("mmi_fm_copy_dialog_create"); - - copy_data = (T_MMI_FM_COPY_STRUCT *)mfwAlloc(sizeof(T_MMI_FM_COPY_STRUCT)); - - //Create a window for drawing the image in QCIF width and height - copy_data->win = win_create (fm_data->list_win, 0, E_WIN_VISIBLE|E_WIN_SUSPEND|E_WIN_RESUME|E_WIN_DELETE, (T_MFW_CB)mmi_fm_copy_dialog_win_cb); - - copy_data ->mmi_control.dialog = (T_DIALOG_FUNC)mmi_fm_copy_dialog_exec_cb; - copy_data ->mmi_control.data = copy_data ; - copy_data->parent_win= fm_data->list_win; - win = (T_MFW_WIN *)getWinData(copy_data->win); - win->user = (MfwUserDataPtr)copy_data; - copy_data->kbd = kbd_create (copy_data->win,KEY_ALL|KEY_MAKE,(T_MFW_CB)mmi_fm_copy_dialog_kbd_cb); - winShow(copy_data->win ); - return copy_data->win ; -} - -/******************************************************************************* - $Function: mmi_fm_copy_dialog_kbd_cb - - $Description: Handler for key events for the copy progress window - - $Returns: Execution status - - $Arguments: e -window event Id - k -key event -*******************************************************************************/ -static int mmi_fm_copy_dialog_kbd_cb (MfwEvt e, MfwKbd *k) -{ - TRACE_FUNCTION("mmi_fm_copy_dialog_kbd_cb"); - - if (!(e & KEY_MAKE)) - { - return MFW_EVENT_CONSUMED; - } - - switch (k->code) - { - case KCD_LEFT: - break; - case KCD_RIGHT: - case KCD_HUP: - break; - } - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_copy_dialog_win_cb - - $Description: Handler for window events for the copy progress window - - $Returns: Execution status - - $Arguments: e -window event Id - w -current window -*******************************************************************************/ -int mmi_fm_copy_dialog_win_cb (MfwEvt e, MfwWin *w) -{ - T_MMI_FM_COPY_STRUCT * copy_data = (T_MMI_FM_COPY_STRUCT *)w->user; - - TRACE_FUNCTION ("mmi_fm_copy_dialog_win_cb()"); - - TRACE_EVENT_P1("event %d",e); - switch (e) - { - case MfwWinVisible: /* window is visible */ - SEND_EVENT(copy_data->win, FM_COPY_DRAW, 0, (void *)NULL); - break; - case MfwWinSuspend: /* input focus / selected */ - SEND_EVENT(copy_data->win, FM_COPY_SUSPEND, 0, (void *)NULL); - break; - case MfwWinResume: /* input focus / selected */ - SEND_EVENT(copy_data->win, FM_COPY_RESUME, 0, (void *)NULL); - break; - case MfwWinDelete: /* window will be deleted */ - break; - default: - return MFW_EVENT_REJECTED; - } - return MFW_EVENT_CONSUMED; - -} - -/******************************************************************************* - $Function: mmi_fm_copy_dialog_exec_cb - - $Description: Eevnt handler copy progress window - - $Returns: None - - $Arguments: win -current window - event -window event Id - value -unique Id - parameter -optional data. -*******************************************************************************/ -void mmi_fm_copy_dialog_exec_cb (T_MFW_HND win, USHORT event, SHORT value, void * parameter) -{ - int x1, y1, x2, y2; - int txtId1= TxtPleaseWait, txtId2 = TxtCopying; - char * str1, *str2; - - TRACE_FUNCTION("mmi_fm_copy_dialog_exec_cb"); - - TRACE_EVENT_P1("event %d",event); - switch (event) - { - case FM_COPY_INIT: - break; - case FM_COPY_DRAW: - dspl_ClearAll(); - switch(fm_data->copymove.data->state) - { - case FM_COPY_START: - case FM_COPY_PROGRESS: - txtId1 = TxtPleaseWait; - if(fm_data->opt_type == FM_COPY) - txtId2 = TxtCopying; - else - txtId2 = TxtMove; - break; - case FM_COPY_DONE: - break; - } - str1 = MmiRsrcGetText(txtId1); - str2 = MmiRsrcGetText(txtId2); - x1= (SCREEN_SIZE_X/2) - (dspl_GetTextExtent(str1,0) / 2) ; - y1= (SCREEN_SIZE_Y -Mmi_layout_softkeyHeight())/2 - Mmi_layout_line_height(); - x2= (SCREEN_SIZE_X/2) - (dspl_GetTextExtent(str2,0) / 2) ; - y2= y1+Mmi_layout_line_height(); - dspl_TextOut(x1,y1,DSPL_TXTATTR_NORMAL,str1); - dspl_TextOut(x2,y2,DSPL_TXTATTR_NORMAL,str2); - displaySoftKeys(TxtNull,TxtSoftBack); - dspl_Enable(1); - break; - case FM_COPY_SUSPEND: - TRACE_EVENT("Suspend"); - timStop(fm_data->copymove.timer) ; - break; - case FM_COPY_RESUME: - TRACE_EVENT("Resume"); - timStart(fm_data->copymove.timer) ; - break; - case FM_COPY_DESTROY: - mmi_fm_copy_dialog_destroy(); - break; - } - } - -/******************************************************************************* - $Function: mmi_fm_copy_dialog_destroy - - $Description: Destroys the copy progress window and releases the allocated memory for the internal structure - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_copy_dialog_destroy(void) -{ - T_MFW_HND win = fm_data->copymove.win;//mfwParent(mfw_header()); - T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data; - T_MMI_FM_COPY_STRUCT * copy_data = (T_MMI_FM_COPY_STRUCT *)win_data->user; - TRACE_FUNCTION("mmi_fm_copy_dialog_destroy"); - mmi_fm_set_mmi_plane_to_front(); - winDelete(copy_data->win); - mfwFree((U8 *)copy_data, sizeof(T_MMI_FM_COPY_STRUCT)); -} - -/******************************************************************************* - $Function: mmi_fm_copy_end - - $Description: Displays the result of Copy or Move operation - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_copy_end(void) -{ - TRACE_FUNCTION ("mmi_fm_copy_end()"); - - if(fm_data->opt_type == FM_COPY) - { - if(fm_data->copymove.data->state == FM_COPY_DONE) - { - fm_data->list_state = FM_LIST_RECREATE; - mmi_fm_app_show_info(0,TxtCopy,TxtDone,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else if (fm_data->copymove.data->state == FM_COPY_ERROR) - mmi_fm_app_show_info(0,TxtCopy,TxtError,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - else if (fm_data->copymove.data->state == FM_COPY_NONE)//April 27, 2007 DRT:OMAPS00128836 x0073106 - { - mmi_fm_app_show_info(0,TxtFile,TxtExists,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - - } - else - { - if(fm_data->copymove.data->state == FM_COPY_DONE) - { - mfw_fm_remove(fm_data->copymove.data->sourceFile, fm_data->source); - fm_data->list_state = FM_LIST_RECREATE; - mmi_fm_app_show_info(0,TxtMove,TxtDone,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - else if (fm_data->copymove.data->state == FM_COPY_ERROR) - mmi_fm_app_show_info(0,TxtMove,TxtError,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - else if (fm_data->copymove.data->state == FM_COPY_NONE)//April 27, 2007 DRT:OMAPS00128836 x0073106 - { - mmi_fm_app_show_info(0,TxtFile,TxtFailed,TxtNull,TxtSoftBack,(T_VOID_FUNC)mmi_fm_copy_end_cb,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - } - } - mfwFree((U8 *)fm_data->copymove.data->buf, FM_COPY_BUFFER_SIZE); - -} - -/******************************************************************************* - $Function: mmi_fm_copy_end_cb - - $Description: Callback function for copy info dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_copy_end_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - TRACE_EVENT_P1("state %d",fm_data->copymove.data->state ); - mmi_fm_copy_destroy(fm_data->copymove.data->state); -} - -/******************************************************************************* - $Function: mmi_fm_copy_destroy - - $Description: Destroy the source list and repopulates - - $Returns: None - - $Arguments: status - Status of Copy or Move operation -*******************************************************************************/ -void mmi_fm_copy_destroy(T_FM_COPY_STATE status) -{ - T_MMI_FM_DEST_STRUCT* dest_data = fm_data->dest_data; - - TRACE_FUNCTION ("mmi_fm_copy_destroy()"); - - mfwFree((U8 *)fm_data->copymove.data->sourceFile, FM_MAX_DIR_PATH_LENGTH); - mfwFree((U8 *)fm_data->copymove.data->destinationFile, FM_MAX_DIR_PATH_LENGTH); - mfwFree((U8 *)fm_data->copymove.data, sizeof(T_MFW_FM_COPYMOVE_STRUCT)); - mfwFree((U8 *)dest_data , sizeof (T_MMI_FM_DEST_STRUCT)); - fm_data->dest_data = NULL; - TRACE_EVENT_P1("state %d",status ); - if(fm_data->list_state == FM_LIST_RECREATE) - { - //Delete the options window - if(fm_data->opt_win) - { - TRACE_EVENT("bookMenuDestroy"); - bookMenuDestroy(fm_data->opt_win); - fm_data->opt_win = NULL; - } - //Populate the list again - if(fm_data->list_win) - { - listsIconsDestroy(fm_data->list_win); - fm_data->list_win=NULL; - mmi_fm_list_destroy( fm_data->root_win); - TRACE_EVENT("List destroyed"); - } - SEND_EVENT (fm_data->root_win, FM_INIT, 0, (void *)NULL); - } -} - -/******************************************************************************* - $Function: mmi_fm_copy_timer_cb - - $Description: Timer callback - - $Returns: None - - $Arguments: e -window event Id - m - Timer Handle -*******************************************************************************/ -int mmi_fm_copy_timer_cb ( MfwEvt e, MfwTim *m ) -{ - TRACE_FUNCTION ("mmi_fm_copy_timer_cb()"); - fm_data->copymove.data->state = mfw_fm_copy_continue(fm_data->copymove.data); - TRACE_EVENT_P1("state %d",fm_data->copymove.data->state ); - if(fm_data->copymove.data->state == FM_COPY_PROGRESS) - { - timStart(fm_data->copymove.timer) ; - } - else if(fm_data->copymove.data->state == FM_COPY_DONE || fm_data->copymove.data->state == FM_COPY_ERROR) - { - timDelete(fm_data->copymove.timer); - fm_data->copymove.timer= NULL; - SEND_EVENT(fm_data->copymove.win, FM_COPY_DESTROY,0, (void *)NULL); - mmi_fm_copy_end(); - } - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_move - - $Description: Moves the selected object from source to destination - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_move (MfwMnu* m, MfwMnuItem* i) -{ - TRACE_FUNCTION ("mmi_fm_move()"); - fm_data->opt_type = FM_MOVE; - mmi_fm_displayDestDrive(); - return MFW_EVENT_CONSUMED; -} - - -/******************************************************************************* - $Function: mmi_fm_properties - - $Description: Display the selected object properties - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_properties(MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_properties()"); - - mmi_fm_properties_editor_create(parent_win); - - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_properties_editor_create - - $Description: Creates an editor for creating a new directory - - $Returns: Execution status - - $Arguments: parent_win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_properties_editor_create(T_MFW_HND parent_win) -{ - T_MFW_HND win; - T_AUI_EDITOR_DATA editor_data; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; -/*#ifdef FF_MMI_UNICODE_SUPPORT - T_WCHAR name[FM_MAX_OBJ_NAME_LENGTH]; -#else - char name[FM_MAX_OBJ_NAME_LENGTH]; -#endif*/ - char size[FM_MAX_OBJ_NAME_LENGTH]; - char date[FM_MAX_OBJ_NAME_LENGTH]; - char time[FM_MAX_OBJ_NAME_LENGTH]; - - TRACE_FUNCTION ("mmi_fm_newdir_editor_create"); - - fm_data->edt_buf = (char *)mfwAlloc(FM_MAX_DETAILS_BUFFER); - - memset(&editor_data,'\0',sizeof(editor_data)); - /* - ** Initialise the editor - */ - AUI_edit_SetDefault(&editor_data); - AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII,(UBYTE *) fm_data->edt_buf, 100); - AUI_edit_SetMode(&editor_data,ED_MODE_ALPHA,0); - AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtNull, TxtDetails, NULL); - AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtNull); - AUI_edit_SetEvents(&editor_data, 0, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_fm_properties_editor_exec_cb); - win = AUI_edit_Start(parent_win, &editor_data); - //Name - AUI_edit_InsertString(win , (UBYTE *) "Name : ",ATB_DCS_ASCII); - -#ifdef FF_MMI_UNICODE_SUPPORT - //sprintf(name," : %s",cur_dir->obj_list[cur_dir->currentIndex]->name); - if (fm_data->app == FM_AUDIO) - { - char *name; - int size= (wstrlen(cur_dir->obj_list[cur_dir->currentIndex]->name_uc)+1)*2; - name = (char *)mfwAlloc(size); - - unicode_to_char_array(cur_dir->obj_list[cur_dir->currentIndex]->name_uc, name); - AUI_edit_InsertString(win , (UBYTE *)name,ATB_DCS_UNICODE); - - mfwFree(name, size); - } - else -#endif - { - //sprintf(name," : %s",cur_dir->obj_list[cur_dir->currentIndex]->name); - AUI_edit_InsertString(win , (UBYTE *)cur_dir->obj_list[cur_dir->currentIndex]->name,ATB_DCS_ASCII); - } - - AUI_edit_InsertChar(win , ctrlEnter); - //size - AUI_edit_InsertString(win , (UBYTE *) "Size",ATB_DCS_ASCII); - sprintf(size," : %d bytes",cur_dir->obj_properties[cur_dir->currentIndex]->size); - AUI_edit_InsertString(win , (UBYTE *)size,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - TRACE_EVENT("Date"); - //Date - AUI_edit_InsertString(win , (UBYTE *) "Date",ATB_DCS_ASCII); - sprintf(date," : %s",cur_dir->obj_properties[cur_dir->currentIndex]->date); - AUI_edit_InsertString(win , (UBYTE *)date,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - //Time - AUI_edit_InsertString(win , (UBYTE *) "Time",ATB_DCS_ASCII); - sprintf(time," : %s",cur_dir->obj_properties[cur_dir->currentIndex]->time); - AUI_edit_InsertString(win , (UBYTE *)time,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - - AUI_edit_SetMode(&editor_data,ED_MODE_READONLY,0); - win_show(win); - return win; -} - -/******************************************************************************* - $Function: mmi_fm_properties_editor_exec_cb - - $Description: Event handler for the editor - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -static void mmi_fm_properties_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason) -{ - TRACE_FUNCTION ("mmi_fm_properties_editor_exec_cb()"); - - switch (reason) - { - case INFO_KCD_LEFT: - case INFO_KCD_RIGHT: - case INFO_KCD_HUP: - mmi_fm_properties_editor_destroy( ); - break; - default: - /* otherwise no action to be performed - */ - break; - - } -} - -/******************************************************************************* - $Function: mmi_fm_properties_editor_destroy - - $Description: Frees the allocated memory - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_properties_editor_destroy(void) -{ - TRACE_FUNCTION ("mmi_fm_properties_editor_destroy"); - - mfwFree((U8 *)fm_data->edt_buf, FM_MAX_DETAILS_BUFFER); -} - -/******************************************************************************* - $Function: mmi_fm_memStat - - $Description: Display the selected drive's free, used space - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_memStat(MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_memStat()"); - - mfw_fm_getMemStat(&fm_data->nFreeBytes, &fm_data->nUsedBytes,fm_data->source); - mmi_fm_memStat_editor_create(parent_win); - return MFW_EVENT_CONSUMED; -} - -/******************************************************************************* - $Function: mmi_fm_memStat_editor_create - - $Description: Creates an editor for creating a new directory - - $Returns: Execution status - - $Arguments: parent_win -Parent window -*******************************************************************************/ -T_MFW_HND mmi_fm_memStat_editor_create(T_MFW_HND parent_win) -{ - T_MFW_HND win; - T_AUI_EDITOR_DATA editor_data; - char free[FM_MAX_OBJ_NAME_LENGTH]; - char used[FM_MAX_OBJ_NAME_LENGTH]; - char total[FM_MAX_OBJ_NAME_LENGTH]; - - TRACE_FUNCTION ("mmi_fm_newdir_editor_create"); - - fm_data->edt_buf = (char *)mfwAlloc(FM_MAX_DETAILS_BUFFER); - - memset(&editor_data,'\0',sizeof(editor_data)); - /* - ** Initialise the editor - */ - AUI_edit_SetDefault(&editor_data); - AUI_edit_SetBuffer(&editor_data, ATB_DCS_ASCII,(UBYTE *) fm_data->edt_buf, 100); - AUI_edit_SetMode(&editor_data,ED_MODE_ALPHA,0); - AUI_edit_SetTextStr(&editor_data, TxtSoftOK, TxtNull, TxtMemorystat, NULL); - AUI_edit_SetAltTextStr(&editor_data, 1, TxtNull, TRUE, TxtNull); - AUI_edit_SetEvents(&editor_data, 0, TRUE, FOREVER, (T_AUI_EDIT_CB)mmi_fm_memStat_editor_exec_cb); - win = AUI_edit_Start(parent_win, &editor_data); - - AUI_edit_InsertString(win , (UBYTE *) "Used",ATB_DCS_ASCII); - sprintf(used," :%d KB ",(fm_data->nUsedBytes)); - AUI_edit_InsertString(win , (UBYTE *)used,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - AUI_edit_InsertChar(win , ctrlEnter); - - AUI_edit_InsertString(win , (UBYTE *) "Free",ATB_DCS_ASCII); - sprintf(free," :%d KB ",fm_data->nFreeBytes); - AUI_edit_InsertString(win , (UBYTE *)free,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - AUI_edit_InsertChar(win , ctrlEnter); - - AUI_edit_InsertString(win , (UBYTE *) "Total",ATB_DCS_ASCII); - sprintf(total," :%d KB ",(fm_data->nFreeBytes+fm_data->nUsedBytes)); - AUI_edit_InsertString(win , (UBYTE *)total,ATB_DCS_ASCII); - AUI_edit_InsertChar(win , ctrlEnter); - - AUI_edit_SetMode(&editor_data,ED_MODE_READONLY, ED_CURSOR_NONE); - win_show(win); - return win; -} - -/******************************************************************************* - $Function: mmi_fm_memStat_editor_exec_cb - - $Description: Event handler for the editor - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -static void mmi_fm_memStat_editor_exec_cb(T_MFW_HND win, USHORT identifier, SHORT reason) -{ - TRACE_FUNCTION ("mmi_fm_memStat_editor_exec_cb()"); - - switch (reason) - { - case INFO_KCD_LEFT: - case INFO_KCD_RIGHT: - case INFO_KCD_HUP: - mmi_fm_memStat_editor_destroy( ); - break; - default: - /* otherwise no action to be performed - */ - break; - - - } -} - -/******************************************************************************* - $Function: mmi_fm_memStat_editor_destroy - - $Description: Frees the allocated memory - - $Returns: None - - $Arguments: None -*******************************************************************************/ -void mmi_fm_memStat_editor_destroy(void) -{ - TRACE_FUNCTION ("mmi_fm_properties_editor_destroy"); - - mfwFree((U8 *)fm_data->edt_buf, FM_MAX_DETAILS_BUFFER); -} - -/******************************************************************************* - $Function: mmi_fm_format - - $Description: Formats the seleted drive - - $Returns: Execution status - - $Arguments: mnu -Pointer to current menu - item -Pointer to current menu item -*******************************************************************************/ -GLOBAL int mmi_fm_format(MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_format()"); - - if( fm_data->source == FM_NOR_FLASH) - mmi_fm_app_show_info(parent_win,TxtFormat,TxtNotAllowed,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - else - mmi_fm_app_show_info(parent_win,TxtFormat,TxtNull,TxtSoftOK,TxtSoftBack,(T_VOID_FUNC)mmi_fm_format_confirm_cb,FOREVER,KEY_LEFT|KEY_RIGHT | KEY_CLEAR | KEY_HUP); - return MFW_EVENT_CONSUMED; -} - -USHORT check_source_setting( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - if((fm_data->app == FM_AUDIO) && (fm_data->cur_dir->dirinfo.aud.state == FM_AUD_NONE)) - return 0; - else - return 1; -} - -USHORT check_source_audio( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - if(fm_data->app == FM_AUDIO) - return 0; - else - return 1; -} - -USHORT check_source_image( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - if(fm_data->app == FM_IMAGE) - return 0; - else - return 1; -} - -USHORT format_check_dev( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - if(fm_data->source == FM_NOR_FLASH) - return 1; - else - return 0; -} -USHORT check_dev( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ) -{ - -char curDir[10]; -UINT16 curDir_uc[10]; -UINT16 objName_uc[10]; -char objName[10]; -T_RFS_DIR f_dir; - - strcpy(curDir, "/"); - convert_u8_to_unicode(curDir, curDir_uc); - - if (rfs_opendir (curDir_uc, &f_dir) < 0) - { - TRACE_EVENT_P1("Opening dir %s Failed",curDir); - return FM_DIR_DOESNOTEXISTS; - } - - while(rfs_readdir (&f_dir, objName_uc, FM_MAX_OBJ_NAME_LENGTH) > 0x0 ) - { - if (objName_uc[0] == '\0') - { - return FM_READDIR_ERROR; - } - - convert_unicode_to_u8(objName_uc, objName); - - if(strcmp(objName,"MMC")==0) - { - rfs_closedir(&f_dir); - return 0; - } - } - rfs_closedir(&f_dir); - return 1; -} - -/******************************************************************************* - $Function: mmi_fm_format_confirm_cb - - $Description: Callback function for remove confirmation dialog - - $Returns: None - - $Arguments: win -current window - identifier -window id - reason -Event cause. -*******************************************************************************/ -void mmi_fm_format_confirm_cb (T_MFW_HND win, USHORT identifier, SHORT reason) -{ - T_MFW_FM_STATUS status = FM_NO_ERROR; - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - TRACE_FUNCTION ("mmi_fm_format_confirm_cb()"); - - switch(reason) - { - case INFO_KCD_LEFT: - status =mfw_fm_format( fm_data->source); - switch(status) - { - case FM_NO_ERROR: - mmi_fm_app_show_info(parent_win,TxtFormat,TxtDone,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - break; - case FM_FORMAT_ERROR: - mmi_fm_app_show_info(parent_win,TxtFormat,TxtError,TxtNull,TxtSoftBack,0,THREE_SECS,KEY_RIGHT | KEY_CLEAR | KEY_HUP); - break; - } - break; - } - -} - -/******************************************************************************* - $Function: mmi_fm_get_filename - - $Description: Extracts the filename discarding the extension - - $Returns: None - - $Arguments: filename -Pointer to filename -******************************************************************************/ -void mmi_fm_get_filename( char * filename) -{ - char* temp; - int s; - - TRACE_FUNCTION("mmi_fm_img_getfilename"); - - temp=(char *)strchr(filename,'.'); - if(filename && temp) - { - s = temp -filename; - filename[s] ='\0'; - } - return; -} - -/******************************************************************************* - $Function: mmi_fm_get_ext - - $Description: Extracts the extension discarding the filename - - $Returns: Extention - - $Arguments: filename -Pointer to filename -******************************************************************************/ -char * mmi_fm_get_ext( char * filename) -{ - char * ext; - - TRACE_FUNCTION("mmi_fm_img_getext"); - - ext=(char *)strchr(filename,'.'); - if(ext) - ext++; - return ext; -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_identifyFile - - $Description: Identifies the valid image file for which the thumbnail is not yet generated - Index is updated in cur_dir->currentIndex - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbGen_identifyFile() -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_imgThmbGen_identifyFile()"); - - while(cur_dir->currentIndex < cur_dir->num_objs) - { - if( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE && - cur_dir->obj_data[cur_dir->currentIndex]->image.thumbnail == FALSE ) - { - break; - } - cur_dir->currentIndex++; - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_start - - $Description: Starts the thumbnail generation UCP - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbGen_start(void) -{ - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_imgThmbGen_start()"); - - cur_dir->dirinfo.img.ipMsl = aci_create(mslPrimHandler,NULL); - //cur_dir->currentIndex would contain the index to the valid file for thumbnail generation - mmi_fm_imgThmbGen_identifyFile(); - //No files for thumbnail generation or - if( cur_dir->currentIndex < cur_dir->num_objs ) - { - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_create(); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgThmb_setparams((char *)currFilePath,curFilename,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgThmb_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMB_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing thumbnail UCP - TRACE_ERROR("Error initializing thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //Error setting callback for thumbnail UCP - TRACE_ERROR("Error setting callback for thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //Error configuring thumbnail UCP - TRACE_ERROR("Error configuring thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //Error creating thumbnail UCP - TRACE_ERROR("Error creating thumbnail UCP"); - } - } - else - { - //No files for thumbnail generation - cur_dir->currentIndex=cur_dir->startIndex; - mmi_fm_imgThmbDraw_start(); - } - -} -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_resume - - $Description: Starts the thumbnail generation UCP - - $Returns: None - - $Arguments: None -******************************************************************************/ - -void mmi_fm_imgThmbGen_resume(void) -{ - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_imgThmbGen_resume()"); - - cur_dir->currentIndex++; - - //cur_dir->currentIndex would contain the index to the valid file for thumbnail generation - mmi_fm_imgThmbGen_identifyFile(); - - if(cur_dir->currentIndex < cur_dir->num_objs ) - { - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_setparams((char *)currFilePath,curFilename,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgThmb_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMB_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing thumbnail UCP - TRACE_ERROR("Error initializing thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //Error setting callback for thumbnail UCP - TRACE_ERROR("Error setting callback for thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //Error configuring thumbnail UCP - TRACE_ERROR("Error configuring thumbnail UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - else - { - //No files for thumbnail generation - cur_dir->currentIndex=cur_dir->startIndex; - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - mmi_fm_imgThmbDraw_start(); - } -} -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_start - - $Description: Generates thumbnail - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbGen(void) -{ - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_imgThmbGen()"); - - cur_dir->currentIndex++; - //cur_dir->currentIndex would contain the index to the valid file for thumbnail generation - mmi_fm_imgThmbGen_identifyFile(); - if(cur_dir->currentIndex < cur_dir->num_objs) - { - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result= mfw_fm_imgThmb_setparams((char *)currFilePath,curFilename,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd=FM_UCP_THMB_GEN; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_generate(); - if(result != FM_UCP_NO_ERROR) - { - //Error Generating thumbnails - //Deinitialize the Thumbnail UCP and destroy it - TRACE_ERROR("Error generating thumbnails"); - cur_dir->dirinfo.img.cmd=FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state=FM_UCP_ERROR; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - } - else - { - //Error configuring thumbnail UCP - //Deinitialize the Thumbnail UCP and destroy it - TRACE_ERROR("Error configuring thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state=FM_UCP_ERROR; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } - } - else - { - //No more thumbnails to genearte - //Deinitialize the thumbnail UCP and start the Viewer UCP for drawing the thumbnails - TRACE_EVENT("Thumbnail generation complete"); - cur_dir->dirinfo.img.cmd=FM_UCP_THMB_DEINIT; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_deinit(); - if(result != FM_UCP_NO_ERROR) - { - TRACE_ERROR("Error deinitializing the thumbnail UCP"); - cur_dir->dirinfo.img.cmd=FM_UCP_NONE; - cur_dir->dirinfo.img.state=FM_UCP_NONE; - result = mfw_fm_imgThmb_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the thumbnail UCP"); - } - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbDraw_identifyFile - - $Description: Identifies the valid image file which has thumbnail - Index is updated in cur_dir->currentIndex - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbDraw_identifyFile() -{ - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - - TRACE_FUNCTION ("mmi_fm_imgThmbDraw_identifyFile()"); - - while( (cur_dir->currentIndex < cur_dir->num_objs) ) - { - if( cur_dir->obj_list[cur_dir->currentIndex]->type == OBJECT_TYPE_IMAGE && - cur_dir->obj_data[cur_dir->currentIndex]->image.thumbnail == TRUE ) - { - break; - } - cur_dir->currentIndex++; - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbDraw_start - - $Description: Starts the image display UCP - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbDraw_start(void) -{ - MfwMnuItem *menu_item; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - int x_offset=0, y_offset; - - TRACE_FUNCTION ("mmi_fm_imgThmbDraw_start()"); - if(!cur_dir->dirinfo.img.ipMsl) - cur_dir->dirinfo.img.ipMsl = aci_create(mslPrimHandler,NULL); - - - //cur_dir->currentIndex would contain the index to the valid file for drawing the thumbnail - mmi_fm_imgThmbDraw_identifyFile(); - if( ((cur_dir->currentIndex - cur_dir->startIndex )< fm_data->menu_list_data->SnapshotSize) - && cur_dir->currentIndex < cur_dir->num_objs) - { - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - menu_item = fm_data->menu_list_data->List; - y_offset=menu_item[0].icon->area.py+ ((cur_dir->currentIndex % 3) * fm_data->lineheight ); - if(cur_dir->dirinfo.img.cmd == FM_UCP_NONE && cur_dir->dirinfo.img.state == FM_UCP_NONE) - { - //Viewer UCP is not yet created, so create it and then draw the thumbnails - result = mfw_fm_imgViewer_create(); - if(result == FM_UCP_NO_ERROR) - { - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_PREVIEW_WIDTH,FM_MFW_PREVIEW_HEIGHT,x_offset,y_offset, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgViewer_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing the Viewer UCP, destroy it - TRACE_ERROR("Error initializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the callback for Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the callback for Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error creating Viewer UCP - TRACE_ERROR("Error creating Viewer UCP"); - } - } - else if( (cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW) && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - //Viewer UCP is already created, so draw the thumbnails - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_PREVIEW_WIDTH,FM_MFW_PREVIEW_HEIGHT,x_offset,y_offset, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd=FM_UCP_THMBIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - TRACE_EVENT("UCP not valid state"); - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - } - } - else - { - //No valid images to draw - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - TRACE_EVENT("No Files to draw"); - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbDraw_resume - - $Description: Starts the image display UCP - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbDraw_resume(void) -{ - MfwMnuItem *menu_item; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - int x_offset=0, y_offset; - - TRACE_FUNCTION ("mmi_fm_imgThmbDraw_resume()"); - - cur_dir->currentIndex++; - - //cur_dir->currentIndex would contain the index to the valid file for drawing the thumbnail - mmi_fm_imgThmbDraw_identifyFile(); - if( ((cur_dir->currentIndex - cur_dir->startIndex )< fm_data->menu_list_data->SnapshotSize) - && cur_dir->currentIndex < cur_dir->num_objs) - { - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - menu_item = fm_data->menu_list_data->List; - y_offset=menu_item[0].icon->area.py+ ((cur_dir->currentIndex % 3) * fm_data->lineheight ); - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_PREVIEW_WIDTH,FM_MFW_PREVIEW_HEIGHT,x_offset,y_offset, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgViewer_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing the Viewer UCP, destroy it - TRACE_ERROR("Error initializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the callback for Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the callback for Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //No valid images to draw - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - TRACE_EVENT("No Files to draw"); - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_start - - $Description: Drawa thumbnails 48 X 48 - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgThmbDraw(void) -{ - MfwMnuItem *menu_item; - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - int x_offset=0, y_offset; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION ("mmi_fm_imgThmbDraw()"); - - mmi_fm_imgThmbDraw_identifyFile(); - if( ((cur_dir->currentIndex - cur_dir->startIndex )< fm_data->menu_list_data->SnapshotSize) - && cur_dir->currentIndex < cur_dir->num_objs) - { - TRACE_EVENT("Inside if"); - displayMenuKeys(MENU_KEY_WAIT); - fm_data->menu_list_data->block_keys = (BOOL)TRUE; - menu_item = fm_data->menu_list_data->List; - y_offset=menu_item[0].icon->area.py + ((cur_dir->currentIndex % 3) * fm_data->lineheight ); - if( (cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW) - && cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - //Viewer UCP is already created, so draw the thumbnails - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_PREVIEW_WIDTH,FM_MFW_PREVIEW_HEIGHT,x_offset,y_offset,fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd=FM_UCP_THMBIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else if (cur_dir->dirinfo.img.cmd == FM_UCP_NONE && cur_dir->dirinfo.img.state == FM_UCP_NONE) - { - //Viewer UCP is not yet created, so create it and then draw the thumbnails - result = mfw_fm_imgViewer_create(); - if(result == FM_UCP_NO_ERROR) - { - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_PREVIEW_WIDTH,FM_MFW_PREVIEW_HEIGHT,x_offset,y_offset, fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgViewer_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_THMBIMG_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing the Viewer UCP, destroy it - TRACE_ERROR("Error initializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the callback for Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the callback for Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error creating Viewer UCP - TRACE_ERROR("Error creating Viewer UCP"); - } - } - else - { - TRACE_EVENT("UCP not valid state"); - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - } - } - else - { - displayMenuKeys(MENU_KEY_UP_DOWN_CENTER); - fm_data->menu_list_data->block_keys = (BOOL)FALSE; - TRACE_EVENT("No Valid File to draw"); - } -} - -/******************************************************************************* - $Function: mmi_fm_imgThmbGen_start - - $Description: Drawa images in QCIF width and height - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_imgDraw(void) -{ - char currFilePath[FM_MAX_DIR_PATH_LENGTH]; - char curFilename[FM_MAX_OBJ_NAME_LENGTH]; - T_FM_CURDIR *cur_dir = fm_data->cur_dir; - T_FM_IMG_STATE result = FM_UCP_NO_ERROR; - - TRACE_FUNCTION ("mmi_fm_imgDraw()"); - - if( (cur_dir->dirinfo.img.cmd == FM_UCP_THMBIMG_DRAW || cur_dir->dirinfo.img.cmd == FM_UCP_QCIFIMG_DRAW ) && - cur_dir->dirinfo.img.state == FM_UCP_NO_ERROR) - { - //Viewer UCP is already created, so draw the image - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd=FM_UCP_QCIFIMG_DRAW; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_view(); - if(result != FM_UCP_NO_ERROR) - { - //Error drawing thumbnail in the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error drawing thumbnail in the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - } - else - { - //Error configuring the Viewer UCP, deinit and destroy it - TRACE_ERROR("Error configuring Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_DEINIT; - cur_dir->dirinfo.img.state = FM_UCP_ERROR; - result = mfw_fm_imgViewer_deinit(); - if(result != FM_UCP_NO_ERROR) - { - //Error deinitializing the Viewer UCP, destroy it - TRACE_ERROR("Error deinitializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - } - else if(cur_dir->dirinfo.img.cmd != FM_UCP_NONE) - { - //Viewer UCP is not yet created, so create it and then draw the thumbnails - result = mfw_fm_imgViewer_create(); - if(result == FM_UCP_NO_ERROR) - { - strcpy(curFilename,cur_dir->obj_list[cur_dir->currentIndex ]->name); - mmi_fm_get_filename(curFilename); - sprintf(currFilePath,"%s%s/",cur_dir->dir_path,cur_dir->dir_name); - result = mfw_fm_imgViewer_setImageProperty((char *)currFilePath,curFilename,FM_MFW_QCIF_WIDTH,FM_MFW_QCIF_HEIGHT,0,0,fm_data->source); - if(result == FM_UCP_NO_ERROR) - { - result = mfw_fm_imgViewer_setcallback(); - if(result == FM_UCP_NO_ERROR) - { - cur_dir->dirinfo.img.cmd = FM_UCP_QCIFIMG_INIT; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_init(); - if(result != FM_UCP_NO_ERROR) - { - //Error initializing the Viewer UCP, destroy it - TRACE_ERROR("Error initializing the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - - } - else - { - //Error configuring the callback for Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the callback for Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error configuring the Viewer UCP, Destroy it - TRACE_ERROR("Error configuring the Viewer UCP"); - cur_dir->dirinfo.img.cmd = FM_UCP_NONE; - cur_dir->dirinfo.img.state = FM_UCP_NONE; - result = mfw_fm_imgViewer_destroy(); - if(result != FM_UCP_NO_ERROR) - TRACE_ERROR("Error destroying the Viewer UCP"); - } - } - else - { - //Error creating Viewer UCP - TRACE_ERROR("Error creating Viewer UCP"); - } - } -} - - -void mmi_fm_set_mmi_plane_to_front(void) -{ - TRACE_FUNCTION ("mmi_fm_set_mmi_plane_to_front()"); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state3 %d",cur_dir->dirinfo.aud.state); - dspl_set_mmi_to_idle_mode(); -// TRACE_EVENT_P1("cur_dir->dirinfo.aud.state4 %d",cur_dir->dirinfo.aud.state); - dspl_set_mmi_to_execute_mode(); - //TRACE_EVENT_P1("cur_dir->dirinfo.aud.state5 %d",cur_dir->dirinfo.aud.state); - -} - -GLOBAL int mmi_pb_on_off(MfwMnu* m, MfwMnuItem* i) -{ - T_MFW_HND parent_win = mfw_parent(mfw_header()); - - switch(m->lCursor[m->level]) - { - case 0: - mmi_progress_bar = PB_ON; - mmi_fm_app_show_info(parent_win,TxtMidiLoopOn,TxtNull,TxtNull,TxtNull,0,THREE_SECS, KEY_CLEAR); - break; - - case 1: - mmi_progress_bar = PB_OFF; - mmi_fm_app_show_info(parent_win,TxtMidiLoopOff,TxtNull,TxtNull,TxtNull,0,THREE_SECS, KEY_CLEAR); - break; - } - return 1; -} - -/* Mar 29, 2007 DRT: OMAPS00122677 x0039928 */ -/* Fix: Initialize root directories */ -/******************************************************************************* - $Function: mmi_fm_init - - $Description: Drawa images in QCIF width and height - - $Returns: None - - $Arguments: None -******************************************************************************/ -void mmi_fm_init(void) -{ - mfw_fm_createRootDir(FM_NOR_FLASH); - mfw_fm_createRootDir(FM_NORMS_FLASH); - mfw_fm_createRootDir(FM_NAND_FLASH); - if(check_dev(NULL, NULL, NULL) == 0) - mfw_fm_createRootDir(FM_T_FLASH); -} -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/ -#ifdef FF_MMI_UNICODE_SUPPORT -static void unicode_to_char_array(T_WCHAR *inp, char *out) -{ - int i; - int size = wstrlen(inp)+1; - - for (i=0; i>8; - out[i*2+1] = (inp[i]&0x00FF); - //out[i*2] = *(((char *) (inp+i)) + 1); - //out[i*2+1] = *((char *) (inp+i)); - } -} -#endif -/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> End*/ - -#endif diff -r f4d125dbfff2 -r f4c91ce88c0f src/ui/bmi/mmiFileManager.h --- a/src/ui/bmi/mmiFileManager.h Sun Nov 08 01:39:40 2020 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -#ifndef _MMI_FILEMANGER_H_ -#define _MMI_FILEMANGER_H_ - -#include "rfs/rfs_api.h" -#include "mfw_fm.h" - - -/******************************************************************************* - - Interface constants - -*******************************************************************************/ -typedef enum -{ - FM_INIT, - FM_DRAW, - FM_SUSPEND, - FM_RESUME, - FM_DESTROY, - FM_IMGDRAW_INIT, - FM_IMGDRAW_DRAW, - FM_IMGDRAW_SUSPEND, - FM_IMGDRAW_RESUME, - FM_IMGDRAW_DESTROY, - FM_EDITOR_INIT, - FM_EDITOR_CANCEL, - FM_EDITOR_SELECT, - FM_EDITOR_ERROR, - FM_COPY_INIT, - FM_COPY_DRAW, - FM_COPY_SUSPEND, - FM_COPY_RESUME, - FM_COPY_DESTROY -}T_FM_WIN_EVNETS; -typedef enum -{ - FM_LIST_CREATE = -1, - FM_LIST_RECREATE, - FM_LIST_UPDATE -}T_FM_LIST_STATE; - - -/* ====================================================== */ -/* -* FielManager window structure -*/ -/* ====================================================== */ -typedef struct -{ - T_MFW_FM_COPYMOVE_STRUCT *data; - T_MFW_HND win; - T_MFW_HND timer; -}T_FM_COPYMOVE; -typedef struct -{ - T_MMI_CONTROL mmi_control; - T_MFW_HND parent_win; - - T_MFW_HND dest_drive_win; - T_MFW_HND dest_root_win; - T_MFW_HND dest_rootfolderlist_win; - T_MFW_HND dest_list_win; - ListMenuData *dest_menu_list_data; - T_FM_DEVICE_TYPE destination;//Destination drive for copy or move scenario - T_FM_DESTDIR *dest_dir; - T_FM_APP_TYPE app;//Destination drive for copy or move scenario -}T_MMI_FM_DEST_STRUCT; -typedef struct -{ - T_MMI_CONTROL mmi_control; - - T_MFW_HND parent_win;//Hanlder for the parent window - - T_MFW_HND root_win;//Handler for the Root dummy window - T_MFW_HND mfw_win; //handler for the mfw component to the root window - - T_MFW_HND list_win;//Hanlder for the list - ListMenuData *menu_list_data;//List menu data - int lineheight; - - T_MFW_HND opt_win; //Handler for the options window - - T_MFW_HND img_win; //Hanlder for the image view window - - T_FM_OPERATION_TYPE opt_type;//Holds the operation being excecuted - - T_FM_LIST_STATE list_state;//Indicates whether list should be recreated on entering the list window - - T_FM_DEVICE_TYPE source;//Source drive - T_FM_CURDIR *cur_dir;//Current directory - T_FM_APP_TYPE app; - T_FM_COPYMOVE copymove;//Hold the copy or move related details - T_MMI_FM_DEST_STRUCT *dest_data;//Holds the destination drirectory details - - - int nFreeBytes; - int nUsedBytes; - char * edt_buf; -} T_MMI_FM_STRUCT; - -typedef struct -{ - T_MMI_CONTROL mmi_control; - - T_MFW_HND parent_win; - T_MFW_HND img_win; - T_MFW_HND kbd; - int zoom; - T_FM_IMG_ROTATE rotate; -} T_MMI_FM_IMGDRAW_STRUCT; -typedef struct -{ - T_MMI_CONTROL mmi_control; - - T_MFW_HND parent_win; - T_MFW_HND win; - T_MFW_HND kbd; -} T_MMI_FM_COPY_STRUCT; - -#define FM_MAX_DETAILS_BUFFER 100 -#define FM_COPYMOVE_TIMER 500 -/* ====================================================== */ -/* -* List Attribute -*/ -/* ====================================================== */ -static const MfwMnuAttr FMList_Attrib = -{ - &FileType_menuArea, - MNU_LEFT| MNU_LIST_ICONS| MNU_CUR_LINE, /* centered page menu */ - (U8)-1, /* use default font */ - NULL, /* with these items */ - 0, /* number of items */ - COLOUR_LIST_XX, - TxtFileMgmt, - NULL, - MNUATTRSPARE -}; -/******************************************************************************* - - Public methods - -*******************************************************************************/ -GLOBAL int mmi_fm_display(MfwMnu* mnu, MfwMnuItem* item); -GLOBAL int mmi_fm_root_folders(MfwMnu* mnu, MfwMnuItem* item); - -GLOBAL int mmi_fm_rename (MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_newdir(MfwMnu * m, MfwMnuItem * i); - -GLOBAL int mmi_fm_copy (MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_move (MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_remove(MfwMnu * m, MfwMnuItem * i); -GLOBAL int mmi_fm_properties(MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_drives(MfwMnu* mnu, MfwMnuItem* item); -GLOBAL int mmi_fm_memStat(MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_format(MfwMnu* m, MfwMnuItem* i); -GLOBAL int mmi_fm_dest_display(MfwMnu* mnu, MfwMnuItem* item); -GLOBAL int mmi_fm_dest_root_folders(MfwMnu* mnu, MfwMnuItem* item); -USHORT showCopyMove( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT showCreate( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT check_dev( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT format_check_dev( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT check_source_image( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT check_source_audio( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -USHORT check_source_setting( struct MfwMnuTag *m, struct MfwMnuAttrTag *ma, struct MfwMnuItemTag *mi ); -GLOBAL int mmi_pb_on_off(MfwMnu* m, MfwMnuItem* i); -#endif -