changeset 184:73fd75652066

rm src/ui/mfw/mfw_bt* and src/ui/mfw/mfw_fm.[ch]
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 19 Jan 2021 05:35:14 +0000
parents 83c6933e8f90
children 82c69fc9e022
files src/ui/mfw/mfw_bt_api.c src/ui/mfw/mfw_bt_api.h src/ui/mfw/mfw_bt_private.h src/ui/mfw/mfw_fm.c src/ui/mfw/mfw_fm.h
diffstat 5 files changed, 0 insertions(+), 4131 deletions(-) [+]
line wrap: on
line diff
--- a/src/ui/mfw/mfw_bt_api.c	Tue Jan 19 05:29:26 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-/*******************************************************************************\
-*                                                                           	*
-*  TEXAS INSTRUMENTS ISRAEL PROPRIETARY AND CONFIDENTIAL INFORMATION			*
-*																				*
-*  LEGAL NOTE: THE TRANSFER OF THE TECHNICAL INFORMATION IS BEING MADE			*
-*	UNDER AN EXPORT LICENSE ISSUED BY THE ISRAELI GOVERNMENT AND THAT THE		*
-*	APPLICABLE EXPORT LICENSE DOES NOT ALLOW THE TECHNICAL INFORMATION TO		*
-*	BE USED FOR THE MODIFICATION OF THE BT ENCRYPTION OR THE DEVELOPMENT		*
-*	OF ANY NEW ENCRYPTION. THE INFORMATION CAN BE USED FOR THE INTERNAL			*
-*	DESIGN AND MANUFACTURE OF TI PRODUCTS THAT WILL CONTAIN THE BT IC.			*
-*																				*
-\*******************************************************************************/
-/*******************************************************************************\
-*
-*   FILE NAME:      mfw_bt_api.c
-*
-*   DESCRIPTION:	This file implements the API between BMI (MMI) and BT applications
-*
-*   AUTHOR:         Anandhi Ramesh
-*
-*	Rev 0.1
-*
-\*******************************************************************************/
-/* ========================================================== */
-/*===========================================================
-*!
-*! Revision History
-*! ===================================
-
-	Nov 12, 2007 DRT :OMAPS00151698  x0056422
-	Description: MM: Commands that are not recognized by MMI are
-	handled improperly in BMI_NotifyBtEvent function. *!
-*!
-*! 17-Jan-2006 mf: Revisions appear in reverse chronological order;
-*! that is, newest first.  The date format is dd-Mon-yyyy.
-* =========================================================== */
-
-/******************************************************************************  
-                                Include Files
-*******************************************************************************/
-#ifdef FF_MMI_A2DP_AVRCP
-#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_phb.h"
-#include "mfw_phbi.h"
-#include "mfw_cm.h"
-#include "mfw_cmi.h"
-#include "mfw_kbd.h"
-
-#include "mfw_nm.h"
-#include "mfw_sim.h"
-#include "mfw_sima.h"
-#include "mfw_nmi.h"
-#include "mfw_simi.h"
-#include "mfw_sms.h"
-#include "mfw_smsi.h"
-#include "mfw_win.h"
-
-#include "ksd.h"
-#include "psa.h"
-
-#include "mfw_bt_api.h"
-#include "mfw_bt_private.h"
-
-/*Declaration of Global BT structure for BMI*/
-BMI_BT_STRUCTTYPE tGlobalBmiBtStruct; 
-
-extern BOOL mmi_progress_bar;
-/* temp comment */
-extern T_AS_RET as_bt_cfg(BOOL , const T_RV_RETURN_PATH* );
-/* ========================================================================== */
-/**
-* @fn BMI_SwitchAudioToBtHeadset : Sets BT connection status.
-*     Connect or disconnect the audio output to BT headset.
-*      BT will call this function to let BMI know an A2DP link to a wireless headset
-*      has been connected (and is in Open state), or disconnected. 
-* 
-*      When link is connected, BMI will decide whether it wants to 
-*      direct the audio output to the wireless headset.
-*
-* @param [in] connected
-*        connected [in] - whether the link has just been connected or disconnected:
-*                       TRUE - connected
-*                       FALSE - disconnected
-*
-* @return BOOL
-*      when connect parameter is TRUE:
-*        - return TRUE when BMI approves and will use A2DP headset as the audio output
-*        - return FALSE when BMI rejects using A2DP headset as the audio output
-*
-*      when connect parameter is FALSE - returned value is ignored
-*
-*  @see mfw_bt_api.h
-*/
-/* ========================================================================== */
-
-BOOL BMI_SwitchAudioToBtHeadset(BOOL connected)
-{
-        static U8 first_time = 1;
-	TRACE_FUNCTION("BMI_SwitchAudioToBtHeadset");
-	if(first_time == 1)
-	    {
-	        tGlobalBmiBtStruct.tCmdSrc = BMI_BT_COMMAND_NONE;
-	        first_time = 0;
-	    }
-    if(connected == 0)
-    {
-	TRACE_FUNCTION("BMI_BT_Trace BMI_SwitchAudioToBtHeadset OFF");
-    tGlobalBmiBtStruct.bConnected = BMI_BT_NOTCONNECTED;
-	}
-    else
-	{
-        	TRACE_FUNCTION("BMI_BT_Trace BMI_SwitchAudioToBtHeadset ON");
-    tGlobalBmiBtStruct.bConnected = BMI_BT_CONNECTED;
-	}
-    
-	//send the status to AS layer. 
-    as_bt_cfg(connected, NULL);
-    return connected;
-}
-/* ========================================================================== */
-/**
-* @fn BMI_NotifyBtEvent : Informs BMI of any events triggered by the BT headset.
-* @Description : This function is called by BT to notify MMI of any events in the headset. 
-* MMI translates these events to corresponding keypad events and posts the event to itself. 
-*
-* @param [in] BtAppEvent event
-*     The events that are recognised by MMI are
-*     BT_EVENT_USER_PLAY - user has pressed play on handset, or resume. 
-*     BT_EVENT_USER_STOP - user has pressed stop on handset. 
-*     BT_EVENT_USER_PAUSE - user has pressed pause on handset. 
-*
-* @return none
-*
-*  @see  mfw_bt_api.h
-*/
-/* ========================================================================== */
-
-void BMI_NotifyBtEvent(BtAppEvent event)
-{
-    U8 key_state, key_code;
-    int nPresses;
-   TRACE_FUNCTION("BMI_BT_Trace BMI_NotifyBtEvent Enter");
-    if(tGlobalBmiBtStruct.bConnected != BMI_BT_NOTCONNECTED)
-    {
-    key_state = KEY_STAT_PRS;
-    
-    	TRACE_FUNCTION("BMI_BT_Trace BMI_NotifyBtEvent - BT connected");
-    switch(event)
-    {
-       case BT_EVENT_USER_PLAY:
-		   TRACE_FUNCTION("Play");
-        	if(tGlobalBmiBtStruct.tAudioState == FM_AUD_PAUSE 
-        		&& mmi_progress_bar==1)
-        		  key_code = 0x0D;
-        	else if (tGlobalBmiBtStruct.tAudioState == FM_AUD_STOP || 
-        		      tGlobalBmiBtStruct.tAudioState == FM_AUD_NONE)
-        		key_code = 0x17;   
-        	else 
-        		goto EXIT;
-        break;
-        case BT_EVENT_USER_STOP:
-			TRACE_FUNCTION("Stop");
-        	if(tGlobalBmiBtStruct.tAudioState == FM_AUD_PLAY 
-        		&& mmi_progress_bar==0)
-        		  key_code = 0x17;
-        	else if(tGlobalBmiBtStruct.tAudioState != FM_AUD_NONE
-        		&& mmi_progress_bar==1)
-        		  key_code = 0x0E;
-        	else 
-        		goto EXIT;
-        break;
-        case BT_EVENT_USER_PAUSE:
-			TRACE_FUNCTION("Pause");
-        	if(tGlobalBmiBtStruct.tAudioState == FM_AUD_PLAY 
-        		&& mmi_progress_bar == 1 )
-        		key_code = 0x0D;
-        	else 
-        		goto EXIT;
-        break;  
-
-		/* OMAPS00151698  x0056422 */
-	    default :
-			goto EXIT;
-        break;  
-    }
-
-    //set the indication that this command came from BT and not handset
-    tGlobalBmiBtStruct.tCmdSrc = BMI_BT_HEADSET_COMMAND;
-
-    //<post a keypad indication message to the MMI> 
-	//Add keypress to queue of key presses
-	nPresses = kbd_getNumElements();
-	kbd_putMakeAndKey( (char)key_state, (char)key_code);
-	/*also send a key release indicaiton for the same key. 
-       If this is not done, the key press becomes a long press and is
-       handled differently */
-	key_state = KEY_STAT_REL;
-	kbd_putMakeAndKey( (char)key_state, (char)key_code);
-	if ((!kbd_stillProcessingKeys()) && (nPresses == 0))
-	{	//Only this element present - create and send message.
-
-	    sendKeyInd(key_code, KEY_STAT_PRS, 0);
-	}
-	if ((!kbd_stillProcessingKeys()) && (nPresses == 0))
-	{	//Only this element present - create and send message.
-
-	    sendKeyInd(key_code, KEY_STAT_REL, 0);
-	}
-    }
-EXIT:
-    return;
-}
-
-/* ========================================================================== */
-/**
-* @fn BMI_RegisterEventCallback : BT calls this function to register a callback with MMI
-* Whenever there is a 
-*
-* @param [in] BtAppEvent event
-*     The events that are recognised by MMI are
-*     BT_EVENT_USER_PLAY - user has pressed play on handset, or resume. 
-*     BT_EVENT_USER_STOP - user has pressed stop on handset. 
-*     BT_EVENT_USER_PAUSE - user has pressed pause on handset. 
-*
-* @return none
-*
-*  @see  mfw_bt_api.h
-*/
-/* ========================================================================== */
-void BMI_RegisterEventCallback(BmiEventCallback eventCallback)
-{
-    TRACE_FUNCTION("BMI_RegisterEventCallback");
-    tGlobalBmiBtStruct.BmiEventCallback = eventCallback;
-    return;
-}
-#endif //FF_MMI_A2DP_AVRCP
-
--- a/src/ui/mfw/mfw_bt_api.h	Tue Jan 19 05:29:26 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-/*******************************************************************************\
-*                                                                           	*
-*  TEXAS INSTRUMENTS ISRAEL PROPRIETARY AND CONFIDENTIAL INFORMATION			*
-*																				*
-*  LEGAL NOTE: THE TRANSFER OF THE TECHNICAL INFORMATION IS BEING MADE			*
-*	UNDER AN EXPORT LICENSE ISSUED BY THE ISRAELI GOVERNMENT AND THAT THE		*
-*	APPLICABLE EXPORT LICENSE DOES NOT ALLOW THE TECHNICAL INFORMATION TO		*
-*	BE USED FOR THE MODIFICATION OF THE BT ENCRYPTION OR THE DEVELOPMENT		*
-*	OF ANY NEW ENCRYPTION. THE INFORMATION CAN BE USED FOR THE INTERNAL			*
-*	DESIGN AND MANUFACTURE OF TI PRODUCTS THAT WILL CONTAIN THE BT IC.			*
-*																				*
-\*******************************************************************************/
-/*******************************************************************************\
-*
-*   FILE NAME:      mfw_bt_api.h
-*
-*   DESCRIPTION:	This file defines the API between BMI (MMI) and BT applications
-*
-*   AUTHOR:         Uzi Doron
-*
-*	Rev 0.2
-*
-\*******************************************************************************/
-
-
-#ifndef __MFW_BT_API
-#define __MFW_BT_API
-/**********************************************/
-/*                                            */
-/*                                            */
-/*    from here on - events from BMI to BT    */
-/*                                            */
-/*                                            */
-/**********************************************/
-
-/*-------------------------------------------------------------------------------
- * BmiAvEvent type
- *
- *     Defines Audio/Video events initiated by MMI side.
- *     These events will be sent from BMI to BT
- *
- */
-typedef enum
-{
-BMI_EVENT_USER_PLAY = 0x0001, /* user pressed Play   on handset */
-BMI_EVENT_USER_STOP,               /* user pressed Stop   on handset */
-BMI_EVENT_USER_PAUSE,            /* user pressed Pause  on handset */
-BMI_EVENT_USER_RESUME,         /* user pressed Resume  on handset */ 
-BMI_EVENT_TRACK_START,         /* a track is starting to play */
-BMI_EVENT_TRACK_END              /* a track ended playing */
-}BmiAvEvent;
-
-/*-------------------------------------------------------------------------------
- * BmiEventCallback type
- *
- *     A callback function, implemented at BT application, that will be called by
- *     BMI to send events (of type BmiAvEvent) to BT. BMI will be able to send events
- *     after BT has registered such an event callback function
- *
- *     At BT side the function prototype will look like:
- *     void BT_NotifyBmiEvent(BmiAvEvent event);
- *
- *     NOTE: Since the callback is called from BMI context, the BT application should
- *     not spend considerable time in this function. In case significant processing 
- *     time and/or asynchronous activity is required as a result of calling this function,
- *     the BT application should switch to its own context to perform this activity.
- *     It must not block the BMI application.
-*/
-typedef void (*BmiEventCallback)(BmiAvEvent event);
-
-/*-------------------------------------------------------------------------------
- * BMI_RegisterEventCallback()
- *
- *		BT application will call this function to register an event callback
- *      function with BMI.
- *
- * Parameters:
- *		eventCallback [in] - pointer of the callback function. if this parameter is
- *                           NULL (0), BMI should not try to make callbacks.
- *
- * Returns:
- *      void
- *
- */
-void BMI_RegisterEventCallback(BmiEventCallback eventCallback);
-
-
-
-/**********************************************/
-/*                                            */
-/*                                            */
-/*    from here on - events from BT to BMI    */
-/*                                            */
-/*                                            */
-/**********************************************/
-
-/*-------------------------------------------------------------------------------
- * BtAppEvent type
- *
- *     Defines events initiated by BT side.
- *     These events will be sent from BT to BMI
- */
-typedef enum 
-{
-BT_EVENT_USER_PLAY = 0x0044,    /* user pressed Play   on BT headset */
-BT_EVENT_USER_STOP,                   /* user pressed Stop   on BT headset */
-BT_EVENT_USER_PAUSE                 /* user pressed Pause  on BT headset */
-}BtAppEvent;
-
-/*-------------------------------------------------------------------------------
- * BMI_NotifyBtEvent()
- *
- *		Notify the BMI about an A/V event initiated at BT side.
- *      This function is implemented in the BMI application and used by the BT application.
- *
- *      NOTE: Since it is called from BT context, the BMI application should not spend
- *      considerable time in this function. In case significant processing time and/or 
- *      asynchronous activity is required as a result of calling this function, the BMI
- *      application should switch to its own context to perform this activity. It must
- *      not block the BT application.
- *
- * Parameters:
- *		event [in] - the reported event
- *
- * Returns:
- *      void
- *
- */
-void BMI_NotifyBtEvent(BtAppEvent event);
-
-/*-------------------------------------------------------------------------------
- * BMI_SwitchAudioToBtHeadset()
- *
- *		Connect or disconnect the audio output to BT headset.
- *      BT will call this function to let BMI know an A2DP link to a wireless headset
- *      has been connected (and is in Open state), or disconnected. 
- * 
- *      When link is connected, BMI will decide whether it wants to 
- *      direct the audio output to the wireless headset.
- *
- * Parameters:
- *		connected [in] - whether the link has just been connected or disconnected:
- *                       TRUE - connected
- *                       FALSE - disconnected
- *
- * Returns:
- *      when connect parameter is TRUE:
- *		- return TRUE when BMI approves and will use A2DP headset as the audio output
- *		- return FALSE when BMI rejects using A2DP headset as the audio output
- *
- *      when connect parameter is FALSE - returned value is ignored
- *
- */
-BOOL BMI_SwitchAudioToBtHeadset(BOOL connected);
-#endif /* __MFWE_BT_API */
-
--- a/src/ui/mfw/mfw_bt_private.h	Tue Jan 19 05:29:26 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*******************************************************************************\
-*                                                                           	*
-*  TEXAS INSTRUMENTS ISRAEL PROPRIETARY AND CONFIDENTIAL INFORMATION			*
-*																				*
-*  LEGAL NOTE: THE TRANSFER OF THE TECHNICAL INFORMATION IS BEING MADE			*
-*	UNDER AN EXPORT LICENSE ISSUED BY THE ISRAELI GOVERNMENT AND THAT THE		*
-*	APPLICABLE EXPORT LICENSE DOES NOT ALLOW THE TECHNICAL INFORMATION TO		*
-*	BE USED FOR THE MODIFICATION OF THE BT ENCRYPTION OR THE DEVELOPMENT		*
-*	OF ANY NEW ENCRYPTION. THE INFORMATION CAN BE USED FOR THE INTERNAL			*
-*	DESIGN AND MANUFACTURE OF TI PRODUCTS THAT WILL CONTAIN THE BT IC.			*
-*																				*
-\*******************************************************************************/
-/*******************************************************************************\
-*
-*   FILE NAME:      mfw_bt_Private.h
-*
-*   DESCRIPTION:	This file defines the structures needed for BMI BT interface
-*                   that are not exposed to BT
-*
-*   AUTHOR:         Anandhi Ramesh
-*
-*	Rev 0.1
-*
-\*******************************************************************************/
-#ifndef __MFW_BT_PRIVATE
-#define __MFW_BT_PRIVATE
-#include "mfw_fm.h"
-#include "mfw_bt_api.h"
-
-#define BMI_BT_NOTCONNECTED 0
-#define BMI_BT_CONNECTED 1
-
-/*---------------------------------------------------------------------------*/
-/*
- * BMI_BT_CMD_SRCTYPE
-* Contains the types of commands that can occur. 
- */
-/*---------------------------------------------------------------------------*/
-typedef enum
-{
-  BMI_BT_COMMAND_NONE = 0,
-  BMI_BT_HANDSET_COMMAND,
-  BMI_BT_HEADSET_COMMAND
-}BMI_BT_CMD_SRCTYPE;
-
-/*---------------------------------------------------------------------------*/
-/*
- * BMI_BT_STRUCTTYPE
- * Global structure that contains the following information
- *    Connection status
- *    State of audio - play/pause/stop etc
- *    Source of the command - could be from headset or handset
- *    callback function for BT
- */
-/*---------------------------------------------------------------------------*/
-typedef struct
-{
-    BOOL bConnected;
-    T_FM_AUD_STATE tAudioState;
-    BMI_BT_CMD_SRCTYPE tCmdSrc;
-    void (*BmiEventCallback)(BmiAvEvent);
-}BMI_BT_STRUCTTYPE;
-
-#endif // __MFW_BT_PRIVATE
-
-
--- a/src/ui/mfw/mfw_fm.c	Tue Jan 19 05:29:26 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3128 +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 mfw_fmc     
-*
-* This provides the functionality of File Manager Applications.
-* It supports file/Directory related operations on NOR, NAND and MMC
-*
-* @path  \bmi\condat\ms\src\mfw
-*
-* @rev  00.01
-*/
-/* ========================================================== */
-/*===========================================================
-*!
-*! Revision History
-*! ===================================
-	
-	Nov 12 2007 DRT :OMAPS00144861 x0056422
-	Description: MM: There are some issues with resume and stop 
-	callback in BT MMI code. 
-	
-
-	Aug 27, 2007 REF:DRT OMAPS00137370 x0045876
-   	Description: MM: MIDI/IMY file is not played correctly after listening a 
-   				 MP3 in the Browse Midi list.
-   	Solution: Param Voice_Limit is changed when MP3 or AAC file is played. So before 
-   			  playing MP3 or AAC file, Voice_Limit should be saved.
-   			  
-	 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 : The global variable aud_state_status is set to AUD_FM_NONE once the file playing stopped.
-    	
-	April 27, 2007 DRT:OMAPS00128836 x0073106
-	Description: Unexpected behavior when copying images with the same names  from a memory to another.
-	Solution:In  mfw_fm_copy_start () added a if condition if(rfs_stat() && image file). 
-
-    Apr 10, 2007    DRT: OMAPS00125309  x0039928
-    Description: MM - Mono option does not work => MMI changes required
-    Solution: Selected Output channel from the settings menu is set for all the players.
-    
-    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 28, 2007   ER: OMAPS00106188  x0039928
-	Description: Align Midi application menu choices and audio Player menu choices 
-	
-    Mar 15, 2007    DRT: OMAPS00120201  x0039928
-    Description: JPEG dir not created in FFS in N5.23 pre release
-    Solution: The directories are created after format for NOR-MS, NAND and T-FLASH
-   	
-*! 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
-
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define FF_MMI_RFS_ENABLED
-
-#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_phb.h"
-#include "mfw_phbi.h"
-#include "mfw_cm.h"
-#include "mfw_cmi.h"
-
-#include "mfw_nm.h"
-#include "mfw_sim.h"
-#include "mfw_sima.h"
-#include "mfw_nmi.h"
-#include "mfw_simi.h"
-#include "mfw_sms.h"
-#include "mfw_smsi.h"
-#include "mfw_win.h"
-
-#include "ksd.h"
-#include "psa.h"
-
-#if defined (FAX_AND_DATA)
-#include "aci_fd.h"
-#endif
-
-//#ifdef FF_MMI_RFS_ENABLED
-#include "rfs/rfs_api.h"
-//#else
-#include "ffs/ffs_api.h"
-//#endif
-
-#include "message.h"
-#include "prim.h"
-#include "aci_cmh.h"
-
-#include "cmh.h"
-#include "phb.h"
-#include "cmh_phb.h"
-
-#include "mfw_ss.h"
-#include "mfw_ssi.h"
-#include "mfw_win.h"
-
-#include "gdi.h"
-#include "prim.h"
-#ifndef PCM_2_FFS
-#include "pcm.h"
-#endif
-
-#ifdef FF_MMI_MIDI_FORMAT
-#include "bae/bae_options.h"
-#endif
-
-#include "mfw_fm.h"
-/**********************NOTE***************************
-FFS header To be replaced with FS Abstraction Header 
-******************************************************/
-
-#ifdef FF_MMI_A2DP_AVRCP
-#include "mfw_bt_api.h"
-#include "mfw_bt_private.h"
-#endif
-
-
-#ifdef INT_PHONEBOOK
-#include "ATBPbGI.h"
-#endif
-/*******************************************************************************
-
-                               Defines
-
-*******************************************************************************/
-EXTERN MfwHdr * current_mfw_elem;
-static MSL_HANDLE msl_handle;
-static T_RV_RETURN_PATH fm_aud_return_path;
-T_MFW_AUD_PARA para_aud;
-extern UBYTE mfw_player_playback_loop_flag;
-extern T_AS_PLAYER_PARAMS player_para;
-extern INT16 player_channel;
-extern int aud_state_status;
-
-
-/* OMAPS00151698, x0056422 */
-#ifdef FF_MMI_A2DP_AVRCP
-extern BMI_BT_STRUCTTYPE tGlobalBmiBtStruct;
-#endif
-//Daisy tang added for Real Resume feature 20071107
-//start
-BOOL isPlayer_Real_Pause = FALSE;
-UINT32   last_file_size_played = 0; 
-char last_inputFileName[FM_MAX_DIR_PATH_LENGTH];
-T_WCHAR last_inputFileName_uc[FM_MAX_DIR_PATH_LENGTH];
-T_AS_PLAYER_TYPE last_file_type;
-BOOL last_play_bar;	
-UINT32 last_para_aud_pt;
-//end
-
-
-/*******************************************************************************
-
-                                Local prototypes
-
-*******************************************************************************/
-
-void Msl_mslil_Callback(void* handle, U32 ucp_type, U32 tCMd, U32 tStatus);
-void mfw_fm_audPlay_cb(void *parameter);
-void mfw_fm_signal(T_MFW_EVENT event, void *para);
-BOOL mfw_fm_sign_exec (T_MFW_HDR * cur_elem, T_MFW_EVENT event, T_MFW_FM_PARA * para);
-/* June 28, 2007 DRT: OMAPS00135749 x0062174 */
-EXTERN void mmi_set_aud_state_status( T_FM_AUD_STATE status);
-
-
-/*******************************************************************************
- $Function:		mfw_fm_create
-
- $Description:		This function  initialises an Mfw fm entity and adds it to the Window Stack
-
- $Returns:		T_MFW_HND	: A handle for the entity
-
- $Arguments:		hWin	: Parent Window Handle
- 				event	: Event Mask of the events to be handled
- 				cbfunc	: Callback function to handle the events
-*******************************************************************************/
-T_MFW_HND mfw_fm_create(T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc)
-{
-	T_MFW_HDR *hdr;
-	T_MFW_FM  *fm_para;
-
-	TRACE_FUNCTION("mfw_FM_create()");
-
-	hdr = (T_MFW_HDR *) mfwAlloc(sizeof (T_MFW_HDR));
-	fm_para = (T_MFW_FM *) mfwAlloc(sizeof (T_MFW_FM));
-
-	if (!hdr OR !fm_para)
-		return FALSE;
-
-	/*
-	* initialisation of the handler
-	*/
-	fm_para->emask   = event;
-	fm_para->handler = cbfunc;
-
-	hdr->data = fm_para;		
-	hdr->type = MfwTypfm;
-
-	/*
-	* installation of the handler
-	*/
-	return mfwInsert((T_MFW_HDR *)hWin, hdr);
-}
-
-/*******************************************************************************
-
- $Function:		mfw_fm_delete
-
- $Description:		This function clears down an Mfw entity and removes it from the
- 				Window Stack
-
- $Returns:		T_MFW_RES	: The result of the function
-
- $Arguments:		T_MFW_HND	: The Handle of the entity to be removed
-
-*******************************************************************************/
-T_MFW_RES mfw_fm_delete(T_MFW_HND hnd)
-{
-	TRACE_FUNCTION("mfw_FM_delete()");
-
-	if (!hnd OR !((T_MFW_HDR *)hnd)->data)
-		return MFW_RES_ILL_HND;
-
-	if (!mfwRemove((T_MFW_HDR *)hnd))
-		return MFW_RES_ILL_HND;
-
-	mfwFree((U8 *)(((T_MFW_HDR *) hnd)->data),sizeof(T_MFW_FM));
-	mfwFree((U8 *)hnd,sizeof(T_MFW_HDR));
-
-	return MFW_RES_OK;
-}
-
-/*******************************************************************************
-
- $Function:		mfw_fm_sign_exec
-
- $Description:		This function sends the Mfw FM  events from the Mfw to the BMI.
-
- $Returns:		None
-
- $Arguments:		None
-
-*******************************************************************************/
-BOOL mfw_fm_sign_exec (T_MFW_HDR * cur_elem, T_MFW_EVENT event, T_MFW_FM_PARA * para)
-{
-	TRACE_FUNCTION("mfw_fm_sign_exec()");
-
-
-	while (cur_elem)
-	{
-		/*
-		* event handler is available
-		*/
-		if (cur_elem->type EQ MfwTypfm)
-		{
-			T_MFW_FM * fm_data;
-			TRACE_EVENT("MfwTyFm");
-			/*
-			* handler is FM management handler
-			*/
-			fm_data = (T_MFW_FM *)cur_elem->data;
-			if (fm_data->emask & event)
-			{
-				/*
-				* event is expected by the call back function
-				*/
-				fm_data->event = event;
-				switch (event)
-				{
-					/*
-					** Generic Events
-					*/
-					case E_FM_THMB_INIT:
-					case E_FM_THMB_DEINIT:
-					case E_FM_THMB_GEN:
-					case E_FM_IMG_INIT:
-					case E_FM_IMG_DRAW:
-					case E_FM_IMG_DEINIT:
-					case E_FM_AUDIO_STOP:
-						if(para!=NULL)
-							memcpy (&fm_data->para, para, sizeof (T_MFW_FM_PARA));
-						break;
-				}
-				/*
-				* if call back defined, call it
-				*/
-				if (fm_data->handler)
-				{
-					// store current mfw elem
-					current_mfw_elem = cur_elem;
-					if ((*(fm_data->handler)) (fm_data->event, (void *)&fm_data->para))
-						return TRUE;
-				}
-			}
-		}
-		cur_elem = cur_elem->next;
-	}
-	return FALSE;
-}
-
-/*******************************************************************************
-
- $Function:		mfw_FM_signal
-
- $Description:		This function sends the Mfw events from the Mfw to the BMI.
-
- $Returns:		None
-
- $Arguments:		T_MFW_EVENT	: The event to be sent to the BMI
- 				void *			: Pointer to the Event data
-
-*******************************************************************************/
-void mfw_fm_signal(T_MFW_EVENT event, void *para)
-{
-	UBYTE temp;
-	temp = dspl_Enable(0);
-
-	TRACE_FUNCTION("mfw_FM_signal()");
-
-	if (mfwSignallingMethod EQ 0)
-	{
-		/*
-		* focus is on a window
-		*/
-		if (mfwFocus)
-		{
-			/*
-			* send event to sim management
-			* handler if available
-			*/
-			if (mfw_fm_sign_exec (mfwFocus, event, para))
-			{
-				dspl_Enable(temp);
-				return;
-			}
-		}
-		/*
-		* actual focussed window is not available
-		* or has no network management registration
-		* handler, then search all nodes from the root.
-		*/
-		if (mfwRoot)
-			mfw_fm_sign_exec (mfwRoot, event, para);
-	}
-	else
-	{
-		MfwHdr * h = 0;
-		/*
-		* Focus set, then start here
-		*/
-		if (mfwFocus)
-			h = mfwFocus;
-		/*
-		* Focus not set, then start root
-		*/
-		if (!h)
-			h = mfwRoot;
-		/*
-		* No elements available, return
-		*/
-		while (h)
-		{
-			/*
-			* Signal consumed, then return
-			*/
-			if (mfw_fm_sign_exec (h, event, para))
-			{
-				dspl_Enable(temp);
-				return;
-			}
-			/*
-			* All windows tried inclusive root
-			*/
-			if (h == mfwRoot)
-			{
-				dspl_Enable(temp);
-				return;
-			}
-			/*
-			* get parent window
-			*/
-			h = mfwParent(mfwParent(h));
-
-			if (h)
-				h = ((MfwWin * )(h->data))->elems;
-		}
-		
-		mfw_fm_sign_exec (mfwRoot, event, para);
-		
-	}	
-	dspl_Enable(temp);
-	return;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_readDir
-
- $Description:		Reads the objects from the given directory
-
- $Returns:		FM_DIR_DOESNOTEXISTS/FM_READDIR_ERROR/FM_NO_ERROR
-
- $Arguments:		dir_path		: Current Directory Path
- 				dir_name		: Current Directory Name
- 				num_objs	: num of obejcts
- 				obj_list		: object list
- 				source		: Current Drive 
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_readDir(char *dir_path, char *dir_name, UBYTE *num_objs, T_FM_OBJ **obj_list, T_FM_DEVICE_TYPE  source, T_FM_APP_TYPE  app)
-{
-	char curDir[FM_MAX_DIR_PATH_LENGTH];
-	/* x0083025 - OMAPS00156759 - Jan 29, 2008 */
-#if defined(FF_MMI_UNICODE_SUPPORT)||defined (FF_MMI_RFS_ENABLED)
-		T_WCHAR objName_uc[FM_MAX_OBJ_NAME_LENGTH];
-		T_WCHAR curObj_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-		char objName_u8[FM_MAX_OBJ_NAME_LENGTH];
-#endif
-		
-#ifdef FF_MMI_RFS_ENABLED
-		char ext1[FM_MAX_EXT_LENGTH];
-		T_RFS_DIR f_dir;
-		UINT16 curDir_uc[FM_MAX_DIR_PATH_LENGTH];
-		T_RFS_RET result;
-		T_RFS_STAT f_stat;
-#else
-	T_FFS_DIR f_dir;
-#endif
-	int iCount=0;
-	
-	TRACE_FUNCTION("mfw_fm_readDir");
-
-	*num_objs = 0;
-	memset(curDir, 0, FM_MAX_DIR_PATH_LENGTH);
-#ifdef FF_MMI_RFS_ENABLED
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(curDir,"%s%s%s","/FFS",dir_path,dir_name);
-			TRACE_EVENT_P1("Current Dir  %s",curDir);
-			break;    
-		case FM_NORMS_FLASH:
-			sprintf(curDir,"%s%s%s","/NOR",dir_path,dir_name);
-			TRACE_EVENT_P1("Current Dir  %s",curDir);
-			break;    
-		case FM_NAND_FLASH:
-			sprintf(curDir,"%s%s%s","/NAND",dir_path,dir_name);
-			TRACE_EVENT_P1("Current Dir  %s",curDir);
-			break;
-		case FM_T_FLASH:
-			sprintf(curDir,"%s%s%s","/MMC",dir_path,dir_name);
-			TRACE_EVENT_P1("Current Dir  %s",curDir);
-			break;
-		default:  
-			TRACE_EVENT("Default:  Invalid value");  
-			break;
-	}
-	
-			convert_u8_to_unicode((const char *)curDir, curDir_uc);
-			if (rfs_opendir (curDir_uc, &f_dir) < 0)
-			{
-				TRACE_EVENT_P1("Opening dir %s Failed",curDir);
-				return FM_DIR_DOESNOTEXISTS; 
-			}
-
-			for (iCount = 0; rfs_readdir (&f_dir, objName_uc, FM_MAX_OBJ_NAME_LENGTH) > 0x0; )
-			{
-				if (objName_uc[0]  == '\0')
-				{
-					return FM_READDIR_ERROR;
-				}
-					if( objName_uc[0] != '.' )
-					{
-						/* x0083025 - OMAPS00156759 - Jan 29, 2008 */
-						wstrcpy(curObj_uc, curDir_uc);
-						{ // append '/' char to the end of string
-							T_WCHAR *tmp = curObj_uc;
-							while (*tmp) ++tmp;
-							*tmp++ = '/';
-							*tmp = 0;
-						}
-						wstrcat(curObj_uc, objName_uc);						
-
-					result= rfs_stat(curObj_uc, &f_stat);
-
-					if(result == RFS_EOK)
-					{
-						if(f_stat.file_dir.mode & RFS_IXUSR)
-						{	
-							obj_list[iCount] = (T_FM_OBJ*)mfwAlloc(sizeof(T_FM_OBJ));
-							
-							/* x0083025 - OMAPS00156759 - Jan 29, 2008 */
-							#ifdef FF_MMI_UNICODE_SUPPORT
-								wstrcpy(obj_list[iCount]->name_uc, objName_uc);
-								TRACE_EVENT_P1("%s", obj_list[iCount]->name_uc);
-							#endif
-								convert_unicode_to_u8(objName_uc, obj_list[iCount]->name);
-								TRACE_EVENT_P1("%s", obj_list[iCount]->name);
-							(*num_objs)++;
-							iCount++;
-							if((*num_objs) >= FM_MAX_OBJ )
-							{
-								TRACE_EVENT("MAX COUNT Reached");
-								if(source == FM_NOR_FLASH)			
-									rfs_closedir(&f_dir);
-								return FM_NO_ERROR;
-							}
-						}
-						else
-						{
-								/* x0083025 - OMAPS00156759 - Jan 29, 2008 */
-								convert_unicode_to_u8(wstrchr(objName_uc,'.')+1, ext1);		
-								
-								if(ext1)
-								{
-								switch(app)
-								{
-								case FM_IMAGE:
-									if(strcmp(ext1, "jpg") == 0) 
-									{	
-										obj_list[iCount] = (T_FM_OBJ*)mfwAlloc(sizeof(T_FM_OBJ));
-										
-										/* x0083025 - OMAPS00156759 - Jan 29, 2008 */
-										convert_unicode_to_u8(objName_uc, obj_list[iCount]->name);
-										
-									TRACE_EVENT_P1("%s", obj_list[iCount]->name);
-									(*num_objs)++;
-									iCount++;
-									if((*num_objs) >= FM_MAX_OBJ )
-									{
-										TRACE_EVENT("MAX COUNT Reached");
-										if(source == FM_NOR_FLASH)			
-											rfs_closedir(&f_dir);
-										return FM_NO_ERROR;
-									}
-								}
-								break;
-							case FM_AUDIO:
-								if(
-				
-#ifdef FF_MP3_RINGER
-									(strcmp(ext1, "mp3") == 0)
-#else
-									(0)
-#endif								
-#ifdef FF_AAC_RINGER
-							 	 || (strcmp(ext1, "aac") == 0) 							 	 
-#else
-								 ||	(0)
-#endif				
-
-#ifdef FF_MMI_MIDI_FORMAT
-
-#ifdef  PAL_ENABLE_XMF 
-								 || (strcmp(ext1, "xmf") == 0)
-#else
-								 ||	(0)
-#endif
-#ifdef PAL_ENABLE_IMELODY 
-							     || (strcmp(ext1, "imy") == 0)							     
-#else
-								 ||	(0)
-#endif
-#ifdef PAL_ENABLE_SMAF_MA3 
-								 || (strcmp(ext1, "mmf") == 0)
-#else
-								 ||	(0)								 
-#endif				
-#ifdef PAL_ENABLE_XMF 
-								 || (strcmp(ext1, "mxmf") == 0)
-#else
-								 ||	(0)								 
-#endif			
-#ifdef PAL_ENABLE_SMS
-								 || (strcmp(ext1, "sms") == 0)
-#else
-								 ||	(0)								 
-#endif									
-#ifdef PAL_ENABLE_DIGITAL_AUDIO
-								 || (strcmp(ext1, "wav") == 0) 
-#else
-								 ||	(0)
-#endif			
-#ifdef PAL_ENABLE_MIDI_NORMALIZER 
-								 || (strcmp(ext1, "mid") == 0) 
-#else
-								 ||	(0)
-#endif				
-
-#endif
-								  )
-									
-								{
-									obj_list[iCount] = (T_FM_OBJ*)mfwAlloc(sizeof(T_FM_OBJ));
-									/* x0083025 - OMAPS00156759 - Jan 29, 2008 */									
-									#ifdef FF_MMI_UNICODE_SUPPORT
-										wstrcpy(obj_list[iCount]->name_uc, objName_uc);
-										TRACE_EVENT_P1("%s", obj_list[iCount]->name_uc);
-									#else
-										convert_unicode_to_u8(objName_uc, obj_list[iCount]->name);
-										TRACE_EVENT_P1("%s", obj_list[iCount]->name);
-									#endif
-									(*num_objs)++;
-									iCount++;
-									if((*num_objs) >= FM_MAX_OBJ )
-									{
-										TRACE_EVENT("MAX COUNT Reached");
-      										if(source == FM_NOR_FLASH)			
-											rfs_closedir(&f_dir);
-										 return FM_NO_ERROR;
-									}				
-								}
-								break;
-							}
-							}
-					}
-				}
-			}    
-			}    
-			TRACE_EVENT_P2("Dir %s contains %d Objects",curDir,iCount);
-         if(source == FM_NOR_FLASH)			
-			rfs_closedir(&f_dir);
-#else
-			sprintf(curDir,"%s%s",dir_path,dir_name);
-			TRACE_EVENT_P1("Current Dir  %s",curDir);
-
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			if (ffs_opendir (curDir, &f_dir) < 0)
-			{
-				TRACE_EVENT_P1("Opening dir %s Failed",curDir);
-				return FM_DIR_DOESNOTEXISTS; 
-			}
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-				for (iCount = 0; ffs_readdir (&f_dir, objName_u8, FM_MAX_OBJ_NAME_LENGTH) > 0x0; iCount++)
-				{
-					if (objName_u8[0]	== '\0')
-					{
-						return FM_READDIR_ERROR;
-					}
-					if( objName_u8[0] != '.' )
-					{
-						obj_list[iCount] = (T_FM_OBJ*)mfwAlloc(sizeof(T_FM_OBJ));
-						strcpy(obj_list[iCount]->name, objName_u8);
-						TRACE_EVENT_P1("%s", obj_list[iCount]->name);
-						(*num_objs)++;
-						if((*num_objs) >= FM_MAX_OBJ )
-						{
-							TRACE_EVENT("MAX COUNT Reached");
-							 break;
-						}
-					}
-				}	 
-				TRACE_EVENT_P2("Dir %s contains %d Objects",curDir,iCount);
-#endif			
-				
-	
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_rename
-
- $Description:		Renames the selcted object with the new name
-
- $Returns:		FM_RENAME_ERROR/FM_NO_ERROR
-
- $Arguments:		old_filename		: Old filename
- 				new_filename		: New filename
- 				source			: Current Drive
-*******************************************************************************/
-#ifdef FF_MMI_UNICODE_SUPPORT
-T_MFW_FM_STATUS mfw_fm_rename(T_WCHAR* old_filename, T_WCHAR* new_filename, T_FM_DEVICE_TYPE  source)
-#else
-T_MFW_FM_STATUS mfw_fm_rename(char* old_filename, char * new_filename, T_FM_DEVICE_TYPE  source)
-#endif
-{
-
-#ifdef FF_MMI_RFS_ENABLED 
-	T_RFS_RET rfsResult;
-	char old_filename_mt[FM_MAX_DIR_PATH_LENGTH];
-	char new_filename_mt[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 new_filename_uc[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 old_filename_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-
-#if defined(FF_MMI_UNICODE_SUPPORT) && !defined(FF_MMI_RFS_ENABLED)
-	char old_filename_u8[FM_MAX_DIR_PATH_LENGTH];
-	char new_filename_u8[FM_MAX_DIR_PATH_LENGTH];
-#endif
-
-	T_FFS_RET ffsResult;
-#endif
-
-	TRACE_FUNCTION("mfw_fm_rename");
-
-#ifdef FF_MMI_RFS_ENABLED 		
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			strcpy(old_filename_mt, "/FFS");
-			strcpy(new_filename_mt, "/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(old_filename_mt, "/NOR");
-			strcpy(new_filename_mt, "/NOR");
-			break;
-		case FM_NAND_FLASH:
-			strcpy(old_filename_mt, "/NAND");
-			strcpy(new_filename_mt, "/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(old_filename_mt, "/MMC");
-			strcpy(new_filename_mt, "/MMC");
-			break;
-	}
-
-#ifdef FF_MMI_UNICODE_SUPPORT
-	convert_u8_to_unicode(old_filename_mt,old_filename_uc);
-	convert_u8_to_unicode(new_filename_mt, new_filename_uc);
-	wstrcat(old_filename_uc, old_filename);
-	wstrcat(new_filename_uc, new_filename);
-#else
-	strcat(old_filename_mt, old_filename);
-	strcat(new_filename_mt, new_filename);
-	convert_u8_to_unicode(old_filename_mt,old_filename_uc);
-	convert_u8_to_unicode(new_filename_mt, new_filename_uc);
-#endif
- 			
-	rfsResult = rfs_rename(old_filename_uc, new_filename_uc);
-	if(rfsResult != RFS_EOK)
-	{
-		return FM_RENAME_ERROR;
-	}
-#else
-
-#ifdef FF_MMI_UNICODE_SUPPORT
-	convert_unicode_to_u8(old_filename, old_filename_u8);
-	convert_unicode_to_u8(new_filename, new_filename_u8;
-
-	ffsResult = ffs_rename(old_filename_u8,new_filename_u8);
-#else
-	ffsResult = ffs_rename(old_filename,new_filename);
-#endif
-	if(ffsResult != EFFS_OK)
-			{
-				return FM_RENAME_ERROR;
-			}
-#endif			
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_rename_image
-
- $Description:		Renames the selected image and its thumbnail with the new name
-
- $Returns:		FM_RENAME_ERROR/FM_NO_ERROR
-
- $Arguments:		path				: Current directory path
- 				dirname			: Current Directory name
- 				old_filename		: Old filename
- 				new_filename		: New filename
- 				source			: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_rename_image(char * path, char * dirname, char* old_filename, char * new_filename, T_FM_DEVICE_TYPE  source)
-{
-	T_MFW_FM_STATUS ffsResult;
-	char t_oldfilename[FM_MAX_DIR_PATH_LENGTH];
-	char t_newfilename[FM_MAX_DIR_PATH_LENGTH];
-
-#ifdef FF_MMI_UNICODE_SUPPORT
-	T_WCHAR oldfilename_uc[FM_MAX_DIR_PATH_LENGTH];
-	T_WCHAR newfilename_uc[FM_MAX_DIR_PATH_LENGTH]; 
-#endif
-
-	TRACE_FUNCTION("mfw_fm_rename_image");
-
-#ifdef FF_MMI_RFS_ENABLED 			
-
-	sprintf(t_oldfilename,"%s%s/%s.jpg",path,dirname,old_filename);
-	sprintf(t_newfilename,"%s%s/%s.jpg",path,dirname,new_filename);
-/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/	
-
-#ifdef FF_MMI_UNICODE_SUPPORT		
-	convert_u8_to_unicode(t_oldfilename, oldfilename_uc); 
-	convert_u8_to_unicode(t_newfilename, newfilename_uc);	
-	ffsResult = mfw_fm_rename(oldfilename_uc,newfilename_uc,source); 
-#else
-	ffsResult = mfw_fm_rename(t_oldfilename,t_newfilename,source);
-#endif
-			if(ffsResult != FM_NO_ERROR)
-			{
-				return FM_RENAME_ERROR;
-			}
-	switch(source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(t_oldfilename,"%s%s/%s.tmb",NORDIR,THUMB,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.tmb",NORDIR,THUMB,new_filename);
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(t_oldfilename,"%s%s/%s.tmb",NORMSDIR,THUMB,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.tmb",NORMSDIR,THUMB,new_filename);
-			break;			
-		case FM_NAND_FLASH:
-			sprintf(t_oldfilename,"%s%s/%s.tmb",NANDDIR,THUMB,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.tmb",NANDDIR,THUMB,new_filename);
-			break;
-		case FM_T_FLASH:
-			sprintf(t_oldfilename,"%s%s/%s.tmb",TFLASHDIR,THUMB,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.tmb",TFLASHDIR,THUMB,new_filename);
-			break;
-	}
-	
-#ifdef FF_MMI_UNICODE_SUPPORT		
-	convert_u8_to_unicode(t_oldfilename, oldfilename_uc); 
-	convert_u8_to_unicode(t_newfilename, newfilename_uc);	
-	ffsResult = mfw_fm_rename(oldfilename_uc,newfilename_uc,source); 
-#else
-	ffsResult = mfw_fm_rename(t_oldfilename,t_newfilename,source);
-#endif
-	if(ffsResult != FM_NO_ERROR)
-	{
-		return FM_RENAME_ERROR;
-	}
-#else
-			sprintf(t_oldfilename,"%s%s/%s.jpg",path,dirname,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.jpg",path,dirname,new_filename);
-
-			ffsResult = mfw_fm_rename(t_oldfilename,t_newfilename,source);
-			if(ffsResult != FM_NO_ERROR)
-			{
-				return FM_RENAME_ERROR;
-			}
-			sprintf(t_oldfilename,"%s%s/%s.tmb",NORDIR,THUMB,old_filename);
-			sprintf(t_newfilename,"%s%s/%s.tmb",NORDIR,THUMB,new_filename);
-
-			ffsResult = mfw_fm_rename(t_oldfilename,t_newfilename,source);
-
-			if(ffsResult != FM_NO_ERROR)
-			{
-				return FM_RENAME_ERROR;
-			}
-#endif
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_createRootDir
-
- $Description:		Creates the root jpeg, tones directory
-
- $Returns:		FM_NO_ERROR
-
- $Arguments:		source	: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_createRootDir(T_FM_DEVICE_TYPE  source)
-{
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_RET ffsResult;
-	T_RFS_DIR f_dir;
-	UINT16 dir_path_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-	T_FFS_RET ffsResult;
-	T_FFS_DIR f_dir;
-#endif
-	char dir_path[FM_MAX_DIR_PATH_LENGTH];
-
-	TRACE_FUNCTION("mfw_fm_createRootDir");
-
-#ifdef FF_MMI_RFS_ENABLED	
-	TRACE_EVENT_P1("Source %d",source);
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(dir_path,"%s%s%s","/FFS",NORDIR,NORDIR_IMG);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir); 
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			if(ffsResult > 0)
-				rfs_closedir(&f_dir);
-			else if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/FFS",NORDIR,THUMB);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			if(ffsResult > 0)
-				rfs_closedir(&f_dir);
-			else if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/FFS",NORDIR,NORDIR_AUD);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			if(ffsResult > 0)
-				rfs_closedir(&f_dir);
-			else if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(dir_path,"%s%s%s","/NOR",NORMSDIR,NORMSDIR_IMG);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir); 
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-	//		if(ffsResult > 0)
-	//			rfs_closedir(&f_dir);
-	//		else 
-			if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/NOR",NORMSDIR,THUMB);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else 
-			if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/NOR",NORMSDIR,NORMSDIR_AUD);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else 
-			if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			break;			
-		case FM_NAND_FLASH:
-			/**********************NOTE***************************
-			FS Abstraction API to be added
-			******************************************************/
-			sprintf(dir_path,"%s%s%s","/NAND",NANDDIR,NANDDIR_IMG);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-//			else
-				if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/NAND",NANDDIR,THUMB);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else
-		if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/NAND",NANDDIR,NANDDIR_AUD);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else 
-		if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			break;
-		case FM_T_FLASH:
-			/**********************NOTE***************************
-			FS Abstraction API to be added
-			******************************************************/
-			sprintf(dir_path,"%s%s%s","/MMC",TFLASHDIR,TFLASHDIR_IMG);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);      
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-		//	if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else
-		if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/MMC",TFLASHDIR,THUMB);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);       
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-	//		if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else
-		if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			sprintf(dir_path,"%s%s%s","/MMC",TFLASHDIR,TFLASHDIR_AUD);
-			convert_u8_to_unicode(dir_path, dir_path_uc);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = rfs_opendir(dir_path_uc,&f_dir);     
-			TRACE_EVENT_P2("Opendir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-	//		if(ffsResult > 0)
-		//		rfs_closedir(&f_dir);
-		//	else
-		if(RFS_ENOENT == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = rfs_mkdir(dir_path_uc, RFS_IRWXU);
-				TRACE_EVENT_P2("Makedir - ffsResult   %d  Dir path %s", ffsResult,dir_path);
-			}
-			break;
-	}
-#else
-			sprintf(dir_path,"%s%s",NORDIR,NORDIR_IMG);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = ffs_opendir(dir_path,&f_dir);       
-			if(EFFS_NOTFOUND == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = ffs_mkdir(dir_path);
-			}
-			sprintf(dir_path,"%s%s",NORDIR,THUMB);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = ffs_opendir(dir_path,&f_dir);       
-			if(EFFS_NOTFOUND == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = ffs_mkdir(dir_path);
-			}
-			sprintf(dir_path,"%s%s",NORDIR,NORDIR_AUD);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			ffsResult = ffs_opendir(dir_path,&f_dir);       
-			if(EFFS_NOTFOUND == ffsResult)
-			{
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffsResult = ffs_mkdir(dir_path);
-			}
-#endif
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_newdir
-
- $Description:		creates a new direcotry with the given name
-
- $Returns:		FM_DIR_EXISTS/FM_NO_ERROR
-
- $Arguments:		dirname		: new directory name
- 				source		: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_newdir(char *dirname, T_FM_DEVICE_TYPE  source)
-{
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_RET ffsResult;
-	T_RFS_DIR f_dir;
-	char pathname[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 pathname_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-	T_FFS_RET ffsResult;
-	T_FFS_DIR f_dir;
-#endif	
-
-	TRACE_FUNCTION("mfw_fm_newdir");
-
-#ifdef FF_MMI_RFS_ENABLED	
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			strcpy(pathname,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(pathname,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(pathname,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(pathname,"/MMC");
-			break;
-	}
-			strcat(pathname,dirname);
-			convert_u8_to_unicode(pathname,pathname_uc);
-
-			ffsResult = rfs_opendir(pathname_uc,&f_dir);       
-			if(RFS_ENOENT == ffsResult)
-			{
-				ffsResult = rfs_mkdir(pathname_uc,RFS_IRWXU);
-			}
-			else
-			{
-				return FM_DIR_EXISTS;
-			}
-#else
-
-			ffsResult = ffs_opendir(dirname,&f_dir);       
-			if(EFFS_NOTFOUND == ffsResult)
-			{
-				ffsResult = ffs_mkdir(dirname);
-			}
-			else
-			{
-				return FM_DIR_EXISTS;
-			}
-#endif
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_readProperties
-
- $Description:		Reads the properties of all the objects in the given directory
-
- $Returns:		None
-
- $Arguments:		dir_path		: Current Directory Path
- 				dir_name		: Current Directory Name
- 				num_objs	: num of obejcts
- 				obj_list		: object list
- 				obj_properties: Object properties
- 				source		: Current Drive 
-*******************************************************************************/
-void mfw_fm_readProperties(char *dir_path, char *dir_name, UBYTE num_objs, T_FM_OBJ **obj_list, T_FM_OBJ_PROPERTIES **obj_properties,T_FM_DEVICE_TYPE  source, T_FM_APP_TYPE app)
-{
-	/* January 16, 2008 DRT:OMAPS00156759 (x0082844) Shubhro -> For Unicode Support--> Start*/
-	#if defined(FF_MMI_UNICODE_SUPPORT)||defined (FF_MMI_RFS_ENABLED)
-		T_WCHAR curObj_uc[FM_MAX_DIR_PATH_LENGTH];
-	#else
-		char curObj_u8[FM_MAX_DIR_PATH_LENGTH];
-	#endif
-	/* January 16, 2008 DRT:OMAPS00156759 (x0082844) Shubhro --> End*/
-	
-	char curPath[FM_MAX_DIR_PATH_LENGTH];
-	int iCount=0;
-
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_RET result;
-	T_RFS_STAT f_stat;	
-	T_RTC_DATE_TIME  time_and_date;
-#else
-	T_FFS_RET result;
-	T_FFS_STAT f_stat;
-#endif	
-	
-	TRACE_FUNCTION("mfw_fm_readProperties");
-
-#ifdef FF_MMI_RFS_ENABLED
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(curPath,"%s%s%s/","/FFS",dir_path,dir_name);
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(curPath,"%s%s%s/","/NOR",dir_path,dir_name);
-			break;			
-		case FM_NAND_FLASH:
-			sprintf(curPath,"%s%s%s/","/NAND",dir_path,dir_name);
-			break;
-		case FM_T_FLASH:
-			sprintf(curPath,"%s%s%s/","/MMC",dir_path,dir_name);
-			break;
-	}    
-
-
-		for (iCount = 0;iCount<num_objs; iCount++)
-			{
-			
-		/* February 8, 2008 DRT:OMAPS00156759 (x0083025) For Unicode Support--> Start*/	
-				convert_u8_to_unicode(curPath, curObj_uc);
-		
-			#ifdef FF_MMI_UNICODE_SUPPORT
-				// If it's an image it's stored as char
-				if (app == FM_AUDIO)
-				{
-					wstrcat(curObj_uc, obj_list[iCount]->name_uc);
-				}
-				else
-			#endif
-				{ 
-					T_WCHAR filename_uc[FM_MAX_OBJ_NAME_LENGTH];
-					convert_u8_to_unicode(obj_list[iCount]->name, filename_uc);
-					wstrcat(curObj_uc, filename_uc);
-				}
-				result= rfs_stat(curObj_uc, &f_stat);
-				if(result == RFS_EOK)
-				{
-					if(f_stat.file_dir.mode & RFS_IXUSR)
-						obj_list[iCount]->type=OBJECT_TYPE_FOLDER;
-					else
-						obj_list[iCount]->type=OBJECT_TYPE_FILE;
-				}
-				TRACE_EVENT_P2("Object %s type %d",curObj_uc, obj_list[iCount]->type);
-
-				obj_properties[iCount] = (T_FM_OBJ_PROPERTIES *)mfwAlloc(sizeof(T_FM_OBJ_PROPERTIES));
-				obj_properties[iCount]->size = f_stat.file_dir.size;
-				result = rfs_getdatetime(curObj_uc,NULL  /* creation date and time */,&time_and_date  /* last modified date and time */);
-				sprintf(obj_properties[iCount]->date,"%d-%d-%d", time_and_date.day, time_and_date.month, 2000 + time_and_date.year);
-				sprintf(obj_properties[iCount]->time,"%d.%d.%d", time_and_date.hour, time_and_date.minute, time_and_date.second);
-			}
-
-#else
-		sprintf(curPath,"%s%s/",dir_path,dir_name);
-		for (iCount = 0;iCount<num_objs; iCount++)
-		{
-			sprintf(curObj_u8,"%s%s",curPath,obj_list[iCount]->name);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			result= ffs_stat( curObj_u8, (void *)&f_stat );
-			if(result == EFFS_OK)
-			{
-				switch(f_stat.type)
-				{
-					case 	OT_FILE:
-						obj_list[iCount]->type=OBJECT_TYPE_FILE;
-						break;
-					case 	OT_DIR:
-						obj_list[iCount]->type=OBJECT_TYPE_FOLDER;
-						break;
-					default:
-						obj_list[iCount]->type=OBJECT_TYPE_NONE;
-						break;
-				}
-			}
-			TRACE_EVENT_P2("name %s, Object type %d", obj_list[iCount]->name,obj_list[iCount]->type);
-			obj_properties[iCount] = (T_FM_OBJ_PROPERTIES*)mfwAlloc(sizeof(T_FM_OBJ_PROPERTIES));
-			obj_properties[iCount]->size=f_stat.size;
-		}
-#endif
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_readFIleFolders
-
- $Description:		Classifies all the objects as either File or Directory
-
- $Returns:		None
-
- $Arguments:		fm_curr_dir	: Current directory
- 				source		: Current Drive
-*******************************************************************************/
-void mfw_fm_readFileFolders(char *dir_path, char *dir_name, UBYTE num_objs, T_FM_OBJ **obj_list, T_FM_DEVICE_TYPE  source)
-{
-	char curObj[FM_MAX_DIR_PATH_LENGTH];
-	char curPath[FM_MAX_DIR_PATH_LENGTH];
-	int iCount=0;
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_RET result;
-	T_RFS_STAT f_stat;
-	UINT16 curObj_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-	T_FFS_RET result;
-	T_FFS_STAT f_stat;
-#endif
-
-TRACE_FUNCTION("mfw_fm_readFileFolders");
-
-#ifdef FF_MMI_RFS_ENABLED
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(curPath,"%s%s%s/","/FFS",dir_path,dir_name);
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(curPath,"%s%s%s/","/NOR",dir_path,dir_name);
-			break;			
-		case FM_NAND_FLASH:
-			sprintf(curPath,"%s%s%s/","/NAND",dir_path,dir_name);
-			break;
-		case FM_T_FLASH:
-			sprintf(curPath,"%s%s%s/","/MMC",dir_path,dir_name);
-			break;
-	}    
-			for (iCount = 0;iCount<num_objs; iCount++)
-			{
-				sprintf(curObj,"%s%s",curPath,obj_list[iCount]->name);
-				convert_u8_to_unicode(curObj, curObj_uc);
-				result= rfs_stat(curObj_uc, &f_stat);
-				if(result == RFS_EOK)
-				{
-					if(f_stat.file_dir.mode & RFS_IXUSR)
-						obj_list[iCount]->type=OBJECT_TYPE_FOLDER;
-					else
-						obj_list[iCount]->type=OBJECT_TYPE_FILE;
-				}
-				TRACE_EVENT_P2("Object %s type %d",curObj, obj_list[iCount]->type);
-			}
-#else
-		sprintf(curPath,"%s%s/",dir_path,dir_name);
-
-		for (iCount = 0;iCount<num_objs; iCount++)
-			{
-				sprintf(curObj,"%s%s",curPath,obj_list[iCount]->name);
-
-				result= ffs_stat( curObj, (void *)&f_stat );
-				if(result == EFFS_OK)
-				{
-					switch(f_stat.type)
-					{
-						case 	OT_FILE:
-							obj_list[iCount]->type=OBJECT_TYPE_FILE;
-							break;
-						case 	OT_DIR:
-							obj_list[iCount]->type=OBJECT_TYPE_FOLDER;
-							break;
-						default:
-							obj_list[iCount]->type=OBJECT_TYPE_NONE;
-							break;
-					}
-				}
-				TRACE_EVENT_P2("Object %s type %d",curObj, obj_list[iCount]->type);
-			}
-#endif
-}
-/*******************************************************************************
- $Function:		mfw_fm_getMemStat
-
- $Description:		Extracts the memory usage details of a given drive
-
- $Returns:		None
-
- $Arguments:		nfree		: free bytes
- 				nused		: used bytes
- 				source		: Current Drive
-*******************************************************************************/
-void mfw_fm_getMemStat(int *nfree, int *nused,T_FM_DEVICE_TYPE  source)	
-{
-
-	T_RFS_STAT f_stat;
-	char curObj[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 curObj_uc[FM_MAX_DIR_PATH_LENGTH];
-	TRACE_FUNCTION("mfw_fm_getMemStat");
-
-	memset(curObj, 0, FM_MAX_DIR_PATH_LENGTH);
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			strcpy(curObj,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(curObj,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(curObj,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(curObj,"/MMC");
-			break;
-	}
-		convert_u8_to_unicode(curObj, curObj_uc);
-		rfs_stat(curObj_uc, &f_stat);    /* warning fix */
-		*nfree = f_stat.mount_point.free_space;
-		*nused = f_stat.mount_point.used_size;
-		
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_format
-
- $Description:		Formats the given drive
-
- $Returns:		FM_NO_ERROR/FM_FORMAT_ERROR
-
- $Arguments:		source		: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_format(T_FM_DEVICE_TYPE  source)	
-{
-	T_RFS_RET result;
-	UINT16 mount_point_uc[6];
-	TRACE_FUNCTION("mfw_fm_format");
-	memset(mount_point_uc, 0x00,6);
-	switch (source)
-	{
-		case FM_NORMS_FLASH:
-			convert_u8_to_unicode("/NOR", mount_point_uc);
-			break;
-		case FM_NAND_FLASH:
-			convert_u8_to_unicode("/NAND", mount_point_uc);
-			break;
-		case FM_T_FLASH:
-			convert_u8_to_unicode("/MMC", mount_point_uc);
-			break;
-	}
-
-	result = rfs_preformat(mount_point_uc, 0xDEAD);
-	if(result < RFS_EOK)
-		return FM_FORMAT_ERROR;
-	else
-	{
-		result = rfs_format(mount_point_uc, NULL, 0x2BAD);
-		if (result < RFS_EOK)
-			return FM_FORMAT_ERROR;
-		else
-		{
-		/*  Mar 15, 2007    DRT: OMAPS00120201  x0039928 */
-		/* Fix: Creating the default directories for the selected device after format */
-			mfw_fm_createRootDir(source);
-			return FM_NO_ERROR;
-		}
-	}
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_remove
-
- $Description:		Deletes the selected object
-
- $Returns:		FM_DELETE_DIRNOTEMPTY/FM_DELETE_ERROR/FM_NO_ERROR
-
- $Arguments:		source		: Current Drive
-*******************************************************************************/
-#ifdef FF_MMI_UNICODE_SUPPORT
-T_MFW_FM_STATUS mfw_fm_remove(T_WCHAR* objname_u16,T_FM_DEVICE_TYPE  source)	
-#else
-T_MFW_FM_STATUS mfw_fm_remove(char* objname,T_FM_DEVICE_TYPE  source)	
-#endif
-{
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_RET rfsResult;
-	char objname_mt[FM_MAX_DIR_PATH_LENGTH];
-	T_WCHAR objname_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-	T_FFS_RET ffsResult;
-#endif
-	
-
-	TRACE_FUNCTION("mfw_fm_remove");
-
-#ifdef FF_MMI_RFS_ENABLED
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			strcpy(objname_mt,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(objname_mt,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(objname_mt,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(objname_mt,"/MMC");
-			break;
-	}
-  #ifdef FF_MMI_UNICODE_SUPPORT
-	convert_u8_to_unicode(objname_mt, objname_uc);
-	wstrcat(objname_uc, objname_u16);
-  #else
-			strcat(objname_mt,objname);
-			convert_u8_to_unicode(objname_mt, objname_uc);
-  #endif
-	TRACE_EVENT_P1("objname  %s",objname_uc);
-			rfsResult = rfs_remove(objname_uc);
-			if(rfsResult != RFS_EOK)
-			{
-				return FM_DELETE_ERROR;
-			}
-#else
-	{
-	#ifdef FF_MMI_UNICODE_SUPPORT
-		char objname[FM_MAX_DIR_PATH_LENGTH];
-		convert_unicode_to_u8(objname_u16, objname);
-	#endif
-	TRACE_EVENT_P1("objname  %s",objname);
-			ffsResult = ffs_remove(objname);
-	}
-			if(ffsResult != EFFS_OK)
-			{
-				if(ffsResult == EFFS_DIRNOTEMPTY)
-					return FM_DELETE_DIRNOTEMPTY;
-				else
-					return FM_DELETE_ERROR;
-			}
-
-#endif
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_remove_image
-
- $Description:		Deletes the selcted image and its thumbnail
-
- $Returns:		FM_DELETE_ERROR/FM_NO_ERROR
-
- $Arguments:		path				: Current directory path
- 				dirname			: Current Directory name
- 				old_filename		: Old filename
- 				new_filename		: New filename
- 				source			: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_remove_image(char * path, char * dirname, char* objname,T_FM_DEVICE_TYPE  source)	
-{
-	char obj[FM_MAX_DIR_PATH_LENGTH];
-	T_MFW_FM_STATUS ffsResult;
-
-	TRACE_FUNCTION("mfw_fm_delete_image");
-
-	sprintf(obj,"%s%s/%s.jpg",path,dirname,objname);
-	TRACE_EVENT_P1("obj %s",obj);
-#ifdef FF_MMI_UNICODE_SUPPORT
-	{
-		T_WCHAR obj_uc[FM_MAX_DIR_PATH_LENGTH];
-		convert_u8_to_unicode(obj, obj_uc);
-		ffsResult = mfw_fm_remove(obj_uc,source);
-	}
-#else
-	ffsResult = mfw_fm_remove(obj,source);
-#endif
-	if(ffsResult != FM_NO_ERROR)
-	{
-		return FM_DELETE_ERROR;
-	}
-	switch(source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(obj,"%s%s/%s.tmb",NORDIR,THUMB,objname);
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(obj,"%s%s/%s.tmb",NORMSDIR,THUMB,objname);
-			break;			
-		case FM_NAND_FLASH:
-			sprintf(obj,"%s%s/%s.tmb",NANDDIR,THUMB,objname);
-			break;
-		case FM_T_FLASH:
-			sprintf(obj,"%s%s/%s.tmb",TFLASHDIR,THUMB,objname);
-			break;
-	}
-#ifdef FF_MMI_UNICODE_SUPPORT
-	{
-		T_WCHAR obj_uc[FM_MAX_DIR_PATH_LENGTH];
-		convert_u8_to_unicode(obj, obj_uc);
-		ffsResult = mfw_fm_remove(obj_uc,source);
-	}
-#else
-	ffsResult = mfw_fm_remove(obj,source);
-#endif
-	if(ffsResult != FM_NO_ERROR)
-	{
-		return FM_DELETE_ERROR;
-	}
-	return FM_NO_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_copy_start
-
- $Description:		starts copying the give file
-
- $Returns:		FM_COPY_ERROR/FM_COPY_DONE/FM_COPY_PROGRESS
-
- $Arguments:		data		: Copy/Move operation related structure
-*******************************************************************************/
-T_FM_COPY_STATE mfw_fm_copy_start(T_MFW_FM_COPYMOVE_STRUCT *data)	
-{
-	char  *ext2;
-	T_RFS_STAT f_stat;
-	T_RFS_SIZE iResult = 0;
-	UINT16 source_file_uc[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 destination_file_uc[FM_MAX_DIR_PATH_LENGTH];
-	char source_file[FM_MAX_DIR_PATH_LENGTH];
-	char destination_file[FM_MAX_DIR_PATH_LENGTH];
-	
-	TRACE_FUNCTION("mfw_fm_copy_start");
-
-	switch (data->source_type)
-	{
-		case FM_NOR_FLASH:
-			strcpy(source_file,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(source_file,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(source_file,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(source_file,"/MMC");
-			break;
-	}
-
-	switch (data->destination_type)
-	{
-		case FM_NOR_FLASH:
-			strcpy(destination_file,"/FFS");
-			break;		
-		case FM_NORMS_FLASH:
-			strcpy(destination_file,"/NOR");
-			break;				
-		case FM_NAND_FLASH:
-			strcpy(destination_file,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(destination_file,"/MMC");
-			break;
-	}
-#ifdef FF_MMI_UNICODE_SUPPORT
-	convert_u8_to_unicode(source_file, source_file_uc);
-	convert_u8_to_unicode(destination_file, destination_file_uc);
-	wstrcat(source_file_uc, data->sourceFile);
-	wstrcat(destination_file_uc, data->destinationFile);
-#else
-	strcat(source_file, data->sourceFile);
-	strcat(destination_file, data->destinationFile);
-
-	convert_u8_to_unicode(source_file, source_file_uc);
-	convert_u8_to_unicode(destination_file, destination_file_uc);
-#endif
-
-	ext2=(char *)mmi_fm_get_ext(source_file);//April 27, 2007 DRT:OMAPS00128836 x0073106
-	
-	if( ( (rfs_stat(destination_file_uc, &f_stat)) != RFS_ENOENT)//April 27, 2007 DRT:OMAPS00128836 x0073106
-		&& (strcmp((const char*)ext2, "jpg") ==0 ))
-	{
-				return FM_COPY_NONE;
-	}
-
-	data->sourceFileID = (T_RFS_FD)rfs_open( source_file_uc, RFS_O_RDONLY, NULL);
-	data->destFileID= (T_RFS_FD)rfs_open( destination_file_uc, RFS_O_WRONLY|RFS_O_CREAT, RFS_IRUSR|RFS_IWUSR);
-	data->bytesRead = 0;
-
-	if(data->sourceFileSize > FM_COPY_BUFFER_SIZE )
-	{
-		data->buf_size = FM_COPY_BUFFER_SIZE;
-		data->bytesRead = data->buf_size;
-	}
-	else 
-	{
-		data->buf_size = data->sourceFileSize;
-		data->bytesRead = data->buf_size;
-	}
-
-	iResult = (T_RFS_SIZE)rfs_read(data->sourceFileID, data->buf,  data->buf_size );
-	TRACE_EVENT_P1("iResult %d",iResult);
-	if(iResult < 0)
-	{
-		//Error Reading
-		rfs_close( data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_ERROR;
-	}
-	iResult = (T_RFS_SIZE)rfs_write( data->destFileID, data->buf,  data->buf_size);
-	TRACE_EVENT_P1("iResult %d",iResult);
-	if(iResult < 0)
-	{
-		//Error writing
-		rfs_close( data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_ERROR;
-	}
-	if(data->bytesRead < data->sourceFileSize)
-	{							
-		return FM_COPY_PROGRESS;
-	}
-	else
-	{
-		rfs_close( data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_DONE;
-	}
-
-//	return FM_COPY_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_copy_continue
-
- $Description:		resumes copying the give file
-
- $Returns:		FM_COPY_ERROR/FM_COPY_DONE/FM_COPY_PROGRESS
-
- $Arguments:		data		: Copy/Move operation related structure
-*******************************************************************************/
-T_FM_COPY_STATE mfw_fm_copy_continue(T_MFW_FM_COPYMOVE_STRUCT *data)	
-{
-	T_RFS_SIZE iResult = 0;
-
-/*	
-	UINT16 source_file_uc[FM_MAX_DIR_PATH_LENGTH];
-	UINT16 destination_file_uc[FM_MAX_DIR_PATH_LENGTH];
-	char source_file[FM_MAX_DIR_PATH_LENGTH];
-	char destination_file[FM_MAX_DIR_PATH_LENGTH];
-	
-	TRACE_FUNCTION("mfw_fm_copy_continue");
-
-
-	switch (data->source_type)
-	{
-		case FM_NOR_FLASH:
-			strcpy(source_file,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(source_file,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(source_file,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(source_file,"/MMC");
-			break;
-	}
-
-	switch (data->destination_type)
-	{
-		case FM_NOR_FLASH:
-			strcpy(destination_file,"/FFS");
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(destination_file,"/NOR");
-			break;			
-		case FM_NAND_FLASH:
-			strcpy(destination_file,"/NAND");
-			break;
-		case FM_T_FLASH:
-			strcpy(destination_file,"/MMC");
-			break;
-	}
-
-	strcat(source_file, data->sourceFile);
-	strcat(destination_file, data->destinationFile);
-
-	convert_u8_to_unicode(source_file, source_file_uc);
-	convert_u8_to_unicode(destination_file, destination_file_uc);
-
-*/
-	if( (data->bytesRead+ FM_COPY_BUFFER_SIZE) < data->sourceFileSize)
-	{
-		//More blocks to be read
-		data->buf_size = FM_COPY_BUFFER_SIZE;
-		data->bytesRead = data->bytesRead + data->buf_size;
-	}
-	else 
-	{
-		//Last chunk to be read
-		data->buf_size = data->sourceFileSize -  data->bytesRead;
-		data->bytesRead = data->bytesRead + FM_COPY_BUFFER_SIZE;
-	}
-
-	iResult = (T_RFS_SIZE)rfs_read(data->sourceFileID, data->buf,  data->buf_size );
-	TRACE_EVENT_P1("iResult %d",iResult);
-	if(iResult < 0)
-	{
-		//Error Reading
-		rfs_close( data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_ERROR;
-	}
-	iResult = (T_RFS_SIZE)rfs_write( data->destFileID, data->buf,  data->buf_size);
-	TRACE_EVENT_P1("iResult %d",iResult);
-	if(iResult < 0)
-	{
-		//Error Writing
-		rfs_close( data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_ERROR;
-	}
-						
-	if(data->bytesRead < data->sourceFileSize)
-	{							
-		return FM_COPY_PROGRESS;
-	}
-	else
-	{
-		rfs_close(data->sourceFileID);
-		rfs_close(data->destFileID );
-		return FM_COPY_DONE;
-	}
-//	return FM_COPY_ERROR;
-}
-
-//Image List
-/*******************************************************************************
- $Function:		mfw_fm_checkThumbnail
-
- $Description:		Checks for thumbnail
-
- $Returns:		FM_FILE_DOESNOTEXISTS/FM_NO_ERROR
-
- $Arguments:		obj				: Current image
- 				source			: Current Drive
-*******************************************************************************/
-T_MFW_FM_STATUS mfw_fm_checkThumbnail( char * obj,T_FM_DEVICE_TYPE  source)
-{
-
-	char filename[FM_MAX_DIR_PATH_LENGTH];
-#ifdef FF_MMI_RFS_ENABLED
-	T_RFS_FD	fd                   = 0;
-	UINT16 filename_uc[FM_MAX_DIR_PATH_LENGTH];
-#else
-	T_FFS_FD  	fd                   = 0;
-#endif	
-	TRACE_FUNCTION("mfw_fm_check_thumbnail");
-	
-	TRACE_EVENT_P1("File %s",obj);
-
-#ifdef FF_MMI_RFS_ENABLED	
-	memset(filename, 0, FM_MAX_DIR_PATH_LENGTH);
-	switch(source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(filename,"%s%s%s/%s.tmb","/FFS",NORDIR,THUMB,obj);
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(filename,"%s%s%s/%s.tmb","/NOR",NORMSDIR,THUMB,obj);
-			break;			
-		case FM_NAND_FLASH:
-			sprintf(filename,"%s%s%s/%s.tmb","/NAND",NANDDIR,THUMB,obj);
-			break;
-		case FM_T_FLASH:
-			sprintf(filename,"%s%s%s/%s.tmb","/MMC",TFLASHDIR,THUMB,obj);
-			break;
-	}
-	convert_u8_to_unicode(filename, filename_uc);
-	if ((fd = rfs_open (filename_uc, RFS_O_RDONLY, NULL)) == RFS_ENOENT)
-	{
-		TRACE_EVENT("Create the thmbnail.");
-		return FM_FILE_DOESNOTEXISTS;
-	}
-	else 
-	{
-		TRACE_EVENT_P1("Error %d",fd);
-		rfs_close(fd);
-		return FM_FILE_EXISTS;
-	}
-#else
-			sprintf(filename,"%s%s/%s.tmb",NORDIR,THUMB,obj);
-			/**********************NOTE***************************
-			FFS API To be replaced with FS Abstraction API 
-			******************************************************/
-			if ((fd = ffs_open (filename, FFS_O_RDONLY)) <= EFFS_NOTFOUND)
-			{
-				TRACE_EVENT("Create the thmbnail.");
-				return FM_FILE_DOESNOTEXISTS;
-			}
-			else 
-			{
-				TRACE_EVENT_P1("Error %d",fd);
-				/**********************NOTE***************************
-				FFS API To be replaced with FS Abstraction API 
-				******************************************************/
-				ffs_close(fd);
-				return FM_FILE_EXISTS;
-			}
-#endif
-//	return FM_FILE_DOESNOTEXISTS;
-}
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_create
-
- $Description:		This function will create the handle of imageviewer UCP
-
- $Returns:		Result of the UCP creation
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_create(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_create()");
-
-	mslResult =     MSL_ImgView_Create(&msl_handle);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_init
-
- $Description:		This function will initialise the imageviewer UCP
-
- $Returns:		Result of the UCP initialization
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_init(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_init()");
-
-	mslResult =     MSL_ImgView_Init(msl_handle);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_destroy
-
- $Description:		This function destroy the imageviewer UCP
-
- $Returns:		Result of the UCP destroy
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_destroy(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_destroy()");
-	mslResult =     MSL_ImgView_Destroy(msl_handle);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_deinit
-
- $Description:		This function will deinit the imageviewer UCP
-
- $Returns:		Result of the UCP de-initialization
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_deinit(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_deinit()");
-
-	mslResult =     MSL_ImgView_Deinit(msl_handle);
-	
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_pause
-
- $Description:		This function will pause the imageviewer UCP. 
-
- $Returns:		Result of the UCP pause
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_pause(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_pause()");
-	 mslResult = MSL_ImgView_Pause((MSL_HANDLE)msl_handle);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_view
-
- $Description:		This function will start the rendering of the image on LCD.
-
- $Returns:		Result of the drawing the image
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_view(void)
-{
-	MSL_IMGVIEW_STATUS mslResult       =  MSL_IMGVIEW_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_view()");
-	mslResult = MSL_ImgView_View((MSL_HANDLE)msl_handle);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;}
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_setImageProperty
-
- $Description:		This function will set the parameters for the imageviewer UCP
-
- $Returns:		Result of the UCP updation of configurations
-
- $Arguments:		filepath	: Image path
- 				filename	: Image name
- 				width	: Image width
- 				height	: Image height
- 				xoffset	: Image x offset
- 				yoffset	: Image y offset
- 				source	: Current drive
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_setImageProperty( char * filepath, char *filename, int width, int height,int xoffset, int yoffset, T_FM_DEVICE_TYPE  source)
-{
-
-	MSL_IMGVIEW_STATUS  mslResult;
-	//The fullpath will be included.
-	char tmb_name_p[FM_MAX_OBJ_NAME_LENGTH];
-	MSL_DISPLAY_CONFIGTYPE mfw_fm_dspl_config;
-	MSL_FILE_CONFIGTYPE mfw_fm_file_config ;
-	int rotation_degree = 0;
-	int zoom_factor = 0;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_setImageProperty()");
-    
-	mfw_fm_dspl_config.tImgFormat = MSL_COLOR_RGB565;
-	mfw_fm_dspl_config.unDisplayImgHeight = height;
-	mfw_fm_dspl_config.unDisplayImgWidth = width;
-	mfw_fm_dspl_config.unDisplayXOffset = xoffset;
-	mfw_fm_dspl_config.unDisplayYOffset = yoffset;
-	mslResult = MSL_ImgView_SetConfig(msl_handle,MSL_DISPLAY_CONFIGINDEX,&mfw_fm_dspl_config);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		mslResult = MSL_ImgView_SetConfig (msl_handle,MSL_ROTATE_CONFIGINDEX,&rotation_degree);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		mslResult = MSL_ImgView_SetConfig(msl_handle,MSL_ZOOM_CONFIGINDEX,&zoom_factor);
-       mfw_fm_file_config.sFileName = (char *) mfwAlloc(FM_MAX_OBJ_NAME_LENGTH);
-
-#ifdef FF_MMI_RFS_ENABLED	   
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/FFS",NORDIR,THUMB, filename);
-	//		mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/NOR",NORMSDIR,THUMB, filename);
-	//		mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;
-		case FM_NAND_FLASH:
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/NAND",NANDDIR,THUMB, filename);
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-	//		mfw_fm_file_config.tFileType = MSL_FILETYPE_RFS;
-			break;
-		case FM_T_FLASH:
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/MMC",TFLASHDIR,THUMB, filename);
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-			//mfw_fm_file_config.tFileType = MSL_FILETYPE_TFLASH;
-			break;
-		default:
-			sprintf(tmb_name_p,"/%s/%s.tmb",THUMB, filename);
-	}
-	strcat(mfw_fm_file_config.sFileName,tmb_name_p);
-#else	
-	strcpy(mfw_fm_file_config.sFileName,tmb_name_p);
-#endif
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		mslResult =  MSL_ImgView_SetConfig(msl_handle,MSL_DECFILE_CONFIGINDEX,&mfw_fm_file_config);
-	 mfwFree((U8 *)mfw_fm_file_config.sFileName,FM_MAX_OBJ_NAME_LENGTH);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgViewer_setConfigs
-
- $Description:		This function will set the parameters for the imageviewer UCP
-
- $Returns:		Result of the UCP updation of configurations
-
- $Arguments:		filepath			: Image path
- 				filename			: Image name
- 				width			: Image width
- 				height			: Image height
- 				xoffset			: Image x offset
- 				yoffset			: Image y offset
- 				zFactor			: Zoom factor
- 				rotation_degree	: Rotate factor
- 				source			: Current drive
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_setConfigs(char *filename,int width, int height,int xoffset, int yoffset,U32 zFactor,int rotation_degree,T_FM_DEVICE_TYPE  source)
-{
-	MSL_IMGVIEW_STATUS  mslResult;
-	MSL_DISPLAY_CONFIGTYPE mfw_fm_dspl_config;
-	MSL_FILE_CONFIGTYPE mfw_fm_file_config ;
-	int zoom_factor = zFactor;
-	int rAngle = rotation_degree;
-
-	TRACE_FUNCTION ("mfw_fm_imgViewer_setRotationConfigs()");
-
-	mfw_fm_dspl_config.unDisplayImgHeight = height;
-	mfw_fm_dspl_config.unDisplayImgWidth = width;
-	mfw_fm_dspl_config.unDisplayXOffset = xoffset;
-	mfw_fm_dspl_config.unDisplayYOffset = yoffset;
-	mslResult = MSL_ImgView_SetConfig(msl_handle,MSL_DISPLAY_CONFIGINDEX,&mfw_fm_dspl_config);
-
-	mfw_fm_file_config.sFileName = (char *) mfwAlloc(FM_MAX_OBJ_NAME_LENGTH);
-
-#ifdef FF_MMI_RFS_ENABLED	
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			strcpy(mfw_fm_file_config.sFileName,"/FFS");
-		//	mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;
-		case FM_NORMS_FLASH:
-			strcpy(mfw_fm_file_config.sFileName,"/NOR");
-		//	mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;		
-		case FM_NAND_FLASH:
-			strcpy(mfw_fm_file_config.sFileName,"/NAND");
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-		//	mfw_fm_file_config.tFileType = MSL_FILETYPE_RFS;
-			break;
-		case FM_T_FLASH:
-			strcpy(mfw_fm_file_config.sFileName,"/MMC");
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-			//mfw_fm_file_config.tFileType = MSL_FILETYPE_TFLASH;
-			break;
-	}
-	strcat(mfw_fm_file_config.sFileName,filename);
-#else
-	strcpy(mfw_fm_file_config.sFileName,filename);
-#endif
-	
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		 mslResult =  MSL_ImgView_SetConfig(msl_handle,MSL_DECFILE_CONFIGINDEX,&mfw_fm_file_config);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		mslResult = MSL_ImgView_SetConfig(msl_handle,MSL_ZOOM_CONFIGINDEX,&zoom_factor);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		mslResult = MSL_ImgView_SetConfig (msl_handle,MSL_ROTATE_CONFIGINDEX,&rAngle);
-
-	 mfwFree((U8 *)mfw_fm_file_config.sFileName,FM_MAX_OBJ_NAME_LENGTH);
-
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_imgView_setcallback
-
- $Description:		This function will set the callback for viewer UCP
-
- $Returns:		Result of the updating the callback function
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgViewer_setcallback(void)
-{
-	MSL_IMGVIEW_STATUS  mslResult;
-
-	TRACE_FUNCTION("mfw_fm_imgViewer_setcallback");
-	
-	mslResult = MSL_ImgView_SetConfig(msl_handle,MSL_CALLBACKSET_CONFIGINDEX,(MSL_CALLBACK)Msl_mslil_Callback);
-	if(mslResult == MSL_IMGVIEW_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_create
-
- $Description:		This function will create the handle of thumbnail UCP
-
- $Returns:		Result of the UCP create
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_create(void)
-{
-	MSL_IMGTHMB_STATUS mslResult       =  MSL_IMGTHMB_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgThmb_create()");
-
-	mslResult =  MSL_ImgThmb_Create(&msl_handle);
-
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_init
-
- $Description:		This function will initialise of thumbnail UCP
-
- $Returns:		Result of the UCP initialization
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_init(void)
-{
-	MSL_IMGTHMB_STATUS mslResult       =  MSL_IMGTHMB_STATUS_OK;
-
-	TRACE_FUNCTION ("mfw_fm_imgThmb_init()");
-
-	mslResult =  MSL_ImgThmb_Init(msl_handle);
-	
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_destroy
-
- $Description:		This function will destroy the thumbnail UCP.
-
- $Returns:		Result of the UCP destroy
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_destroy(void)
-{
-	MSL_IMGTHMB_STATUS  mslResult;
-	
-	TRACE_FUNCTION ("mfw_fm_imgThmb_destroy()");
-	
-	mslResult =   MSL_ImgThmb_Destroy(msl_handle);
-	if (mslResult != MSL_IMGTHMB_STATUS_OK)
-	{
-		MSL_ImgThmb_Destroy(msl_handle);
-		msl_handle=0;
-		return FM_UCP_ERROR;
-	}
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_deinit
-
- $Description:		This function will deinit the thumbnail UCP.
-
- $Returns:		Result of the UCP de-initialization
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_deinit(void)
-{
-	MSL_IMGTHMB_STATUS  mslResult;
-	
-	TRACE_FUNCTION ("mfw_fm_imgThmb_deinit()");
-	
-	mslResult =   MSL_ImgThmb_Deinit(msl_handle);
-	
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
-
- $Function:		mfw_fm_imgThmb_pause
-
- $Description:		This function will pasue the thumbnail UCP.
-
- $Returns:		Result of the UCP pause
-
- $Arguments:		None
-
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_pause(void)
-{
-	MSL_IMGTHMB_STATUS  mslResult;
-	
-	TRACE_FUNCTION ("mfw_fm_imgThmb_pause()");
-	mslResult = MSL_ImgThmb_Pause((MSL_HANDLE)msl_handle);
-	
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_generate
-
- $Description:		This function will generate the thumbnail file in filesystem.
-
- $Returns:		Result of the thumbanil generation
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_generate(void)
-{
-	MSL_IMGTHMB_STATUS  mslResult;
-	
-	TRACE_FUNCTION ("mfw_fm_imgThmb_generate()");
-
-	mslResult = MSL_ImgThmb_Generate((MSL_HANDLE)msl_handle);
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_setparams
-
- $Description:		This function will set the parameters for thumbnail UCP
-
- $Returns:		Result of the UCP updation of configurations
-
- $Arguments:		inFilepath			: Image path
- 				inFilename			: Image name
- 				width			: Image width
- 				height			: Image height
- 				source			: Current drive
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_setparams(char * inFilepath, char* inFilename, int width,int height, T_FM_DEVICE_TYPE  source)
-{
-	MSL_IMGTHMB_STATUS mslResult       =  MSL_IMGTHMB_STATUS_OK;
-	char tmb_name_p[FM_MAX_DIR_PATH_LENGTH];
-
-	MSL_RESCALE_CONFIGTYPE mfw_fm_rescaleconfig ;
-	MSL_FILE_CONFIGTYPE mfw_fm_file_config ;
-
-	TRACE_FUNCTION ("mfw_fm_imgThmb_setparams()");
-
-	mfw_fm_rescaleconfig.unRescaledImgHeight = height;
-	mfw_fm_rescaleconfig.unRescaledImgWidth =width ;
-	mslResult =  MSL_ImgThmb_SetConfigs(msl_handle,MSL_RESCALE_CONFIGINDEX,&mfw_fm_rescaleconfig);
-	mfw_fm_file_config.sFileName = (char *) mfwAlloc(FM_MAX_DIR_PATH_LENGTH);
-	switch (source)
-	{
-		case FM_NOR_FLASH:
-			sprintf(mfw_fm_file_config.sFileName,"%s%s%s.jpg","/FFS",inFilepath,inFilename);
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/FFS",NORDIR,THUMB, inFilename);
-		//	mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;
-		case FM_NORMS_FLASH:
-			sprintf(mfw_fm_file_config.sFileName,"%s%s%s.jpg","/NOR",inFilepath,inFilename);
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/NOR",NORMSDIR,THUMB, inFilename);
-		//	mfw_fm_file_config.tFileType = MSL_FILETYPE_FFS;
-			break;		
-		case FM_NAND_FLASH:
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-			sprintf(mfw_fm_file_config.sFileName,"%s%s%s.jpg","/NAND",inFilepath,inFilename);
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/NAND",NANDDIR,THUMB, inFilename);
-			mfw_fm_file_config.tFileType = MSL_FILETYPE_RFS;
-			break;
-		case FM_T_FLASH:
-			/**********************NOTE***************************
-			Drive type to be updated 
-			******************************************************/
-			sprintf(mfw_fm_file_config.sFileName,"%s%s%s.jpg","/MMC",inFilepath,inFilename);
-			sprintf(tmb_name_p,"%s%s%s/%s.tmb","/MMC",TFLASHDIR,THUMB, inFilename);
-			//mfw_fm_file_config.tFileType = MSL_FILETYPE_TFLASH;
-			break;
-	}
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-	{
-		mslResult =  MSL_ImgThmb_SetConfigs(msl_handle,MSL_DECFILE_CONFIGINDEX,&mfw_fm_file_config);
-	}
-	sprintf(mfw_fm_file_config.sFileName,"%s",tmb_name_p);
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-	{
-		mslResult =  MSL_ImgThmb_SetConfigs(msl_handle,MSL_ENCFILE_CONFIGINDEX,&mfw_fm_file_config);
-	}
-	 mfwFree((U8 *)mfw_fm_file_config.sFileName,FM_MAX_DIR_PATH_LENGTH);
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR; 
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_imgThmb_setcallback
-
- $Description:		This function will set the callback for thumbnail UCP
-
- $Returns:		Result of the UCP updation of configurations
-
- $Arguments:		None
-*******************************************************************************/
-T_FM_IMG_STATE  mfw_fm_imgThmb_setcallback()
-{
-	MSL_IMGTHMB_STATUS mslResult       =  MSL_IMGTHMB_STATUS_OK;
-
-	TRACE_FUNCTION("mfw_fm_imgThmb_setcallback");
-
-	mslResult = MSL_ImgThmb_SetConfigs(msl_handle,MSL_CALLBACKSET_CONFIGINDEX,(MSL_CALLBACK)Msl_mslil_Callback);
-	if(mslResult == MSL_IMGTHMB_STATUS_OK)
-		return FM_UCP_NO_ERROR;
-	else
-		return FM_UCP_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_thmb_mslcb
-
- $Description:		This function is the callback for the thumbnail UCP
-
- $Returns:		None
-
- $Arguments:		tCMd	: Current command being executed by the MSL
- 				tStatus	: Status of the current command
-*******************************************************************************/
-void mfw_fm_thmb_mslcb( U32 tCMd,U32 tStatus)
-{
-	T_MFW_FM_PARA para;
-
-	TRACE_FUNCTION("mfw_fm_thmb_mslcb()");
-	switch(tCMd)
-	{
-		case MSL_CMD_INIT:
-			TRACE_EVENT_P1("MSL_CMD_INIT %d",tStatus);
-			if(tStatus ==MSL_IMGTHMB_STATUS_OK)
-			{
-				para.img_state=FM_UCP_NO_ERROR;
-			}
-			else
-			{
-				para.img_state=FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_THMB_INIT, &para);
-			break;
-		case MSL_CMD_GENERATE:
-			TRACE_EVENT_P1("MSL_CMD_GENERATE %d",tStatus);
-			switch(tStatus)
-			{
-				case MSL_IMGTHMB_STATUS_OK:
-					para.img_state =   FM_UCP_NO_ERROR;
-					break;
-				case MSL_IMGTHMB_ERROR_BAD_STREAM:
-					para.img_state =   FM_UCP_ERROR_BAD_STREAM;
-					break;
-				case MSL_IMGTHMB_ERROR_UNKNOWN:
-					para.img_state =   FM_UCP_ERROR_UNKNOWN;
-					break;
-				case MSL_IMGTHMB_ERROR_IOWRITE:
-					para.img_state =   FM_UCP_ERROR_NO_MEM;
-					break;
-				case MSL_IMGTHMB_ERROR_INVALID_ARGUMENT:
-					para.img_state =   FM_UCP_ERROR_INVALID_ARGUMENT;
-					break;
-				default :
-					para.img_state =   FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_THMB_GEN, &para);
-			break;
-		case MSL_CMD_DEINIT:
-			TRACE_EVENT_P1("MSL_CMD_DEINIT %d",tStatus);
-			if(tStatus ==MSL_IMGTHMB_STATUS_OK)
-			{
-				para.img_state=FM_UCP_NO_ERROR;
-			}
-			else
-			{
-				para.img_state=FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_THMB_DEINIT, &para);
-			break;
-	}
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_view_mslcb
-
- $Description:		This function is the callback for the Viewer UCP
-
- $Returns:		None
-
- $Arguments:		tCMd	: Current command being executed by the MSL
- 				tStatus	: Status of the current command
-*******************************************************************************/
-void mfw_fm_view_mslcb( U32 tCMd,U32 tStatus)
-{
-	T_MFW_FM_PARA para;
-
-	TRACE_FUNCTION("mfw_fm_view_mslcb()");
-
-	switch(tCMd)
-	{
-		case MSL_CMD_INIT:
-			TRACE_EVENT_P1("MSL_CMD_INIT %d",tStatus);
-			if(tStatus ==MSL_IMGVIEW_STATUS_OK)
-			{
-				para.img_state=FM_UCP_NO_ERROR;
-			}
-			else
-			{
-				para.img_state=FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_IMG_INIT, &para);
-			break;
-		case MSL_CMD_VIEW:
-			TRACE_EVENT_P1("MSL_CMD_VIEW %d",tStatus);
-			switch(tStatus )
-			{
-				case MSL_IMGVIEW_STATUS_OK:
-					para.img_state = FM_UCP_NO_ERROR;
-					break;
-				case MSL_IMGVIEW_ERROR_BAD_STREAM:
-					para.img_state =  FM_UCP_ERROR_BAD_STREAM;
-					break;
-				case MSL_IMGVIEW_ERROR_UNKNOWN:
-					para.img_state =  FM_UCP_ERROR_UNKNOWN;
-					break;
-				case MSL_IMGVIEW_ERROR_IOREAD:
-					para.img_state =  FM_UCP_ERROR_READ_FAILED;
-					break;
-				case MSL_IMGVIEW_ERROR_INVALID_ARGUMENT:
-					para.img_state =  FM_UCP_ERROR_INVALID_ARGUMENT;
-					break;
-				default :
-					para.img_state =  FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_IMG_DRAW,&para);
-			break;
-		case MSL_CMD_DEINIT:
-			TRACE_EVENT_P1("MSL_CMD_DEINIT %d",tStatus);
-			if(tStatus ==MSL_IMGVIEW_STATUS_OK)
-			{
-				para.img_state=FM_UCP_NO_ERROR;
-			}
-			else
-			{
-				para.img_state=FM_UCP_ERROR;
-			}
-			mfw_fm_signal(E_FM_IMG_DEINIT, &para);
-			break;
-			
-	}
-}
-
-
-//Audio List 
-
-/*******************************************************************************
- $Function:		mfw_fm_audPlay_cb
-
- $Description:		Callback fundtion for auio play/stop
-
- $Returns:		None
-
- $Arguments:		parameter	: The structure conveying the stop indication data
-*******************************************************************************/
-void mfw_fm_audPlay_cb(void *parameter)
-{
-	T_MFW_FM_PARA para;
-	T_AS_STOP_IND *stop_ind = (T_AS_STOP_IND *)parameter;
-	
-	/* OMAPS00151698, x0056422 */
-	T_AS_START_IND *start_ind = ( T_AS_START_IND *)parameter;
-
-	/* OMAPS00151698, x0056422 */
-
-	T_AS_PROBAR_IND_MP3 *mp3_pb = (T_AS_PROBAR_IND_MP3 *)parameter;
-
-	TRACE_FUNCTION("mfw_fm_audPlay_cb");
-
-	
-	
-	if(mmi_get_aud_state_status() == FM_AUD_NONE)
-	{
-
-       TRACE_EVENT_P1("AS_START_IND status %d ",start_ind->status);
-      mmi_set_aud_state_status(FM_AUD_PLAY);
-
-				/* OMAPS00151698, x0056422 */
-				#ifdef FF_MMI_A2DP_AVRCP
-
-					//if BT connected and aud is initialized, and the command wasnt from BT, then send callback
-					tGlobalBmiBtStruct.tAudioState = FM_AUD_PLAY;
-					if((tGlobalBmiBtStruct.bConnected != BMI_BT_NOTCONNECTED) 
-						&& (start_ind->status == AS_OK))           
-					{  
-
-
-						 if( NULL != tGlobalBmiBtStruct.BmiEventCallback)
-						tGlobalBmiBtStruct.BmiEventCallback(BMI_EVENT_USER_PLAY);
-						tGlobalBmiBtStruct.tCmdSrc == BMI_BT_COMMAND_NONE;
-					}
-				#endif // FF_MMI_A2DP_AVRCP
-	}
-
-	switch(stop_ind->header.msg_id )
-	{
-		/* OMAPS00151698, x0056422 */
-		 case AS_PAUSE_IND:
-                     TRACE_EVENT_P1("AS_PAUSE_IND status %d",stop_ind->status);
-                      mmi_set_aud_state_status( FM_AUD_PAUSE);
-                      /* OMAPS00151698, x0056422 */
-                     #ifdef FF_MMI_A2DP_AVRCP
-                     tGlobalBmiBtStruct.tAudioState = FM_AUD_PAUSE;
-                    if(tGlobalBmiBtStruct.bConnected != BMI_BT_NOTCONNECTED)
-                   {
-                             if(NULL != tGlobalBmiBtStruct.BmiEventCallback)
-                             tGlobalBmiBtStruct.BmiEventCallback(BMI_EVENT_USER_PAUSE);           
-                        tGlobalBmiBtStruct.tCmdSrc = BMI_BT_COMMAND_NONE;
-                  }  
-                 #endif//FF_MMI_A2DP_AVRCP
-                  break;
-		/* OMAPS00151698, x0056422 */
-
-		case AS_STOP_IND:
-			TRACE_EVENT_P2("AS_STOP_IND status %d end %d",stop_ind->status, stop_ind->end_of_media);
-			mfw_unset_stereo_path(mfw_get_current_audioDevice());
-			//Daisy tang added for Real Resume feature 20071107
-			if(isPlayer_Real_Pause)
-			{
-				last_file_size_played = stop_ind->file_size;
-				last_para_aud_pt = para_aud.aud_pt;
-			}
-			
-			switch((int)(stop_ind->status))
-			{
-				case AS_NOT_SUPPORTED:
-					para.aud_state = FM_AUD_ERROR_NOTSUPPORTED;
-					break;
-				case AS_MEMORY_ERR:
-					para.aud_state = FM_AUD_ERROR_MEM;
-					break;
-				case AS_INTERNAL_ERR:
-					para.aud_state = FM_AUD_ERROR_INTERNAL;
-					break;
-				case AS_INVALID_PARAM:
-					para.aud_state = FM_AUD_ERROR_INVALIDPARAM;
-					break;
-				case AS_NOT_READY: 
-					para.aud_state = FM_AUD_ERROR_NOTREADY;
-					break;
-				case AS_MESSAGING_ERR:
-					para.aud_state = FM_AUD_ERROR_MSGING;
-					break;
-				case AS_FFS_ERR:
-					para.aud_state = FM_AUD_ERROR_FFS;
-					break;
-				case AS_PLAYER_ERR:  
-					para.aud_state = FM_AUD_ERROR_PLAYER;
-					break;
-				case AS_DENIED:
-					para.aud_state = FM_AUD_ERROR_DENIED;
-					break;
-				case AS_AUDIO_ERR:
-					para.aud_state = FM_AUD_ERROR_AUDIO;
-					break;
-				case AS_NOT_ALLOWED:
-					para.aud_state = FM_AUD_ERROR_NOTALLOWED;
-					break;
-				default:
-					para.aud_state = FM_AUD_NONE;
-			}
-			/* June 28, 2007 DRT: OMAPS00135749 x0062174 */
-			mmi_set_aud_state_status( FM_AUD_NONE);
-
-			 /* OMAPS00151698, x0056422 */
-                  #ifdef FF_MMI_A2DP_AVRCP
-                  tGlobalBmiBtStruct.tAudioState = FM_AUD_NONE;
-                  /* x0056422, updated changes from this ID  */ 
-				  /*OMAPS001448610 : This callback code is removed since L1 sends the callback to BT for
-                                                  stop playback irrespective of whether the stop is due to end of media or is user prompted. */
-                    tGlobalBmiBtStruct.tCmdSrc = BMI_BT_COMMAND_NONE;
-
-                  #endif//FF_MMI_A2DP_AVRCP
-				  /* OMAPS00151698, x0056422 */
-			mfw_fm_signal(E_FM_AUDIO_STOP, &para);
-			break;
-
-	case AS_PROBAR_IND:
-			TRACE_EVENT_P2("pt %d  tt %d",mp3_pb->u32TotalTimePlayed, mp3_pb->u32totalTimeEst);
-			para_aud.aud_pt = mp3_pb->u32TotalTimePlayed + last_para_aud_pt;			//Daisy tang added for Real Resume feature 20071107
-			para_aud.aud_tt = mp3_pb->u32totalTimeEst;
-			mfw_fm_signal(E_FM_AUDIO_PROG, NULL);
-			break;
-	}	
-	return;
-
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_aud_get_type
-
- $Description:		Deduces the type of audio file
-
- $Returns:		audio file type
-
- $Arguments:		file_name	: audio file 
-*******************************************************************************/
-T_FM_OBJ_TYPE mfw_fm_aud_get_type(char * file_name)
-{
-	T_AS_PLAYER_TYPE player_type;
-	UINT16 filename_uc[47];
-	TRACE_FUNCTION("mfw_fm_aud_get_type");
-
-	convert_u8_to_unicode(file_name, filename_uc);
-	as_deduce_player_type(filename_uc,&player_type);
-	switch(player_type)
-	{
-		case AS_PLAYER_TYPE_MIDI:
-			TRACE_EVENT("AS_PLAYER_TYPE_MIDI");
-			return OBJECT_TYPE_AUDIO_MIDI;
-		case AS_PLAYER_TYPE_MP3:
-			TRACE_EVENT("AS_PLAYER_TYPE_MP3");
-			return OBJECT_TYPE_AUDIO_MP3;
-		case AS_PLAYER_TYPE_AAC:
-			TRACE_EVENT("AS_PLAYER_TYPE_AAC");
-			return OBJECT_TYPE_AUDIO_AAC;
-		default:
-			TRACE_EVENT("Default");
-			return OBJECT_TYPE_FILE;
-	}
-}
- 
-/*******************************************************************************
- $Function:		mfw_fm_audPlay
-
- $Description:		Plays the selected audio file
-
- $Returns:		None
-  
- $Arguments:		file_name	: audio file 
- 				file_type		: audio file type
-*******************************************************************************/
-#ifdef FF_MMI_UNICODE_SUPPORT
-T_FM_AUD_STATE mfw_fm_audPlay(T_WCHAR * filename_uc, T_FM_OBJ_TYPE file_type, BOOL play_bar)
-{
-
-#else 
-T_FM_AUD_STATE mfw_fm_audPlay(char * file_name, T_FM_OBJ_TYPE file_type, BOOL play_bar)
-{
-	UINT16 filename_uc[FM_MAX_DIR_PATH_LENGTH];
-	
-	convert_u8_to_unicode(file_name, filename_uc);
-#endif
-	T_AS_RET status;
-	T_AS_PLAYER_TYPE player_type;
-    int i=0;
-
-	TRACE_FUNCTION("mfw_fm_audPlay");
-
-	//Daisy tang added for Real Resume feature 20071107
-	//start
-	#ifdef FF_MMI_UNICODE_SUPPORT
-	   for(i==0;i<FM_MAX_DIR_PATH_LENGTH;i++)
-	   	{
-	   	last_inputFileName_uc[i]=filename_uc[i];
-	   	}
-	
-	#else
-	strcpy(last_inputFileName, file_name); 
-	#endif
-	last_file_type = file_type;
-	last_play_bar = play_bar;
-	last_file_size_played = 0;
-	last_para_aud_pt = 0;
-	//end
-	switch(file_type)
-	{
-		case OBJECT_TYPE_AUDIO_MIDI:
-			TRACE_EVENT("AS_PLAYER_TYPE_MIDI");
-			
-			/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-			/* Voice Limit parameter should be saved to a temp var before playing 
-			   MP3 or AAC file */
-			player_para.midi.voice_limit = mfw_player_midi_get_voice_limit();
-			/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-			/* MONO is 1 and STEREO is 2 for midi player*/
-		 	player_para.midi.output_channels = player_channel;	 
-			player_type = AS_PLAYER_TYPE_MIDI;
-			break;
-		case OBJECT_TYPE_AUDIO_MP3:
-			TRACE_EVENT("AS_PLAYER_TYPE_MP3");
-
-			/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-			/* Voice Limit parameter should be saved to a temp var before playing 
-			   MP3 or AAC file */
-			mfw_player_set_voice_limit (player_para.midi.voice_limit);
-			/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-			/* MONO is 0 and STEREO is 1 for mp3 player*/
-			player_para.mp3.mono_stereo = player_channel - 1;
-			player_para.mp3.size_file_start = 0;
-			player_type = AS_PLAYER_TYPE_MP3;
-			break;
-		case OBJECT_TYPE_AUDIO_AAC:
-			TRACE_EVENT("AS_PLAYER_TYPE_AAC");
-
-			/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-			/* Voice Limit parameter should be saved to a temp var before playing 
-			   MP3 or AAC file */
-			mfw_player_set_voice_limit (player_para.midi.voice_limit);
-			/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-			/* MONO is 0 and STEREO is 1 for aac player*/
-			player_para.aac.mono_stereo = player_channel - 1 ;
-			player_para.aac.size_file_start= 0;
-			player_type = AS_PLAYER_TYPE_AAC;
-			break;
-		default:
-			/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-			/* Voice Limit parameter should be saved to a temp var before playing 
-			   MP3 or AAC file */
-			player_para.midi.voice_limit = mfw_player_midi_get_voice_limit();
-			/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-			/* MONO is 1 and STEREO is 2 for midi player*/
-			player_para.midi.output_channels = player_channel;	
-			player_type = AS_PLAYER_TYPE_MIDI;
-			break;
-	}
-	as_player_set_params(player_type,&player_para);
-
-	mfw_set_stereo_path(mfw_get_current_audioDevice());
-	fm_aud_return_path.addr_id = 0;
-	fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-
-	status=as_play_file(player_type,filename_uc,AS_VOLUME_HIGH,mfw_player_playback_loop_flag,play_bar,&fm_aud_return_path);
-	if(status == AS_OK)
-		return FM_AUD_NO_ERROR;
-	else
-		return FM_AUD_ERROR;
-}
-
-/*******************************************************************************
- $Function:		mfw_fm_audStop
-
- $Description:		Stops playing the selected audio file
-
- $Returns:		None
-
- $Arguments:		file_name	: audio file 
- 				file_type		: audio file type
-*******************************************************************************/
-T_FM_AUD_STATE mfw_fm_audStop(void)
-{
-	T_AS_RET status;
-	TRACE_EVENT("mfw_fm_audStop");
-	fm_aud_return_path.addr_id = 0;
-	fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-	status=as_stop(&fm_aud_return_path);
-	if(status == AS_OK)
-		return FM_AUD_NO_ERROR;
-	else
-		return FM_AUD_ERROR;
-}  
-
-T_FM_AUD_STATE mfw_fm_audPause(void)
-{
-	T_AS_RET status;
-	TRACE_EVENT("mfw_fm_audPause");
-	fm_aud_return_path.addr_id = 0;
-	fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-	status=as_pause(&fm_aud_return_path);
-	if(status == AS_OK)
-		return FM_AUD_NO_ERROR;
-	else
-		return FM_AUD_ERROR;
-}  
-
-T_FM_AUD_STATE mfw_fm_audResume(void)
-{
-	T_AS_RET status;
-	TRACE_EVENT("mfw_fm_audResume");
-	fm_aud_return_path.addr_id = 0;
-	fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-	 mmi_set_aud_state_status( FM_AUD_PLAY);
-
-
-	/* OMAPS00151698, x0056422 */
-    #ifdef FF_MMI_A2DP_AVRCP
-    tGlobalBmiBtStruct.tAudioState = FM_AUD_PLAY;
-    if(tGlobalBmiBtStruct.bConnected != BMI_BT_NOTCONNECTED)
-    {
-            /*OMAPS001448610 : This check for Headset/handset command is to be removed since the handling is now exactly the same. */
-            if(NULL != tGlobalBmiBtStruct.BmiEventCallback)
-                tGlobalBmiBtStruct.BmiEventCallback(BMI_EVENT_USER_RESUME);           
-            tGlobalBmiBtStruct.tCmdSrc = BMI_BT_COMMAND_NONE;
-
-	 }  
-	#endif//FF_MMI_A2DP_AVRCP
-
-	/* OMAPS00151698, x0056422 */
-	status=as_resume(&fm_aud_return_path);
-	if(status == AS_OK)
-		return FM_AUD_NO_ERROR;
-	else
-		return FM_AUD_ERROR;
-}  
-//Daisy tang added for Real Resume feature 20071107
-//start
-T_FM_AUD_STATE mfw_fm_audRealPause(void)
-{
-	T_AS_RET status;
-	TRACE_EVENT("mfw_fm_audRealPause");
-	isPlayer_Real_Pause = TRUE;
-
-	fm_aud_return_path.addr_id = 0;
-	fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-	status=as_stop(&fm_aud_return_path);
-	if(status == AS_OK)
-		return FM_AUD_NO_ERROR;
-	else
-		return FM_AUD_ERROR;
-}  
-
-T_FM_AUD_STATE mfw_fm_audRealResume(void)
-{	
-	T_AS_RET status;
-	T_AS_PLAYER_TYPE player_type;
-	UINT16 filename_uc[FM_MAX_DIR_PATH_LENGTH];
-	int i=0;
-
-   
-	TRACE_FUNCTION("mfw_fm_audRealResume");
-	
-	if(!isPlayer_Real_Pause)
-		return FM_AUD_ERROR; 
-	if((last_file_type NEQ OBJECT_TYPE_AUDIO_MP3) AND (last_file_type NEQ OBJECT_TYPE_AUDIO_AAC))
-		return FM_AUD_ERROR; 
-	
-	isPlayer_Real_Pause = FALSE;
-
-	switch(last_file_type)
-	{
-		case OBJECT_TYPE_AUDIO_MP3:
-			TRACE_EVENT("AS_PLAYER_TYPE_MP3");
-
-				/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-				/* Voice Limit parameter should be saved to a temp var before playing 
-				   MP3 or AAC file */
-				mfw_player_set_voice_limit (player_para.midi.voice_limit);
-				/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-				/* MONO is 0 and STEREO is 1 for mp3 player*/
-				player_para.mp3.mono_stereo = player_channel - 1;
-				player_para.mp3.size_file_start = last_file_size_played;//Daisy tang added for MP3 feature 20071107
-				player_type = AS_PLAYER_TYPE_MP3;
-				break;
-			case OBJECT_TYPE_AUDIO_AAC:
-				TRACE_EVENT("AS_PLAYER_TYPE_AAC");
-
-				/* Aug 27, 2007    DRT: OMAPS00137370  x0045876 */
-				/* Voice Limit parameter should be saved to a temp var before playing 
-				   MP3 or AAC file */
-				mfw_player_set_voice_limit (player_para.midi.voice_limit);
-				/* Apr 10, 2007    DRT: OMAPS00125309  x0039928 */
-				/* MONO is 0 and STEREO is 1 for aac player*/
-				player_para.aac.mono_stereo = player_channel - 1 ;
-				player_para.aac.size_file_start= last_file_size_played;//Daisy tang added for MP3 feature 20071107
-
-				player_type = AS_PLAYER_TYPE_AAC;
-				break;
-		}
-		as_player_set_params(player_type,&player_para);
-
-		mfw_set_stereo_path(mfw_get_current_audioDevice());
-		fm_aud_return_path.addr_id = 0;
-		fm_aud_return_path.callback_func = mfw_fm_audPlay_cb;
-#ifdef FF_MMI_UNICODE_SUPPORT	
-           for(i==0;i<FM_MAX_DIR_PATH_LENGTH;i++)
-		   	{
-                      filename_uc[i]=last_inputFileName_uc[i];
-		   }
-#else
-		convert_u8_to_unicode(last_inputFileName, filename_uc);
-#endif
-		status=as_play_file(player_type,filename_uc,AS_VOLUME_HIGH,mfw_player_playback_loop_flag,last_play_bar,&fm_aud_return_path);
-		if(status == AS_OK)
-			return FM_AUD_NO_ERROR;
-		else
-			return FM_AUD_ERROR;	
-}  
-//end
-
-
-#endif
-
-
--- a/src/ui/mfw/mfw_fm.h	Tue Jan 19 05:29:26 2021 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,526 +0,0 @@
-/* =========================================================
-*             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 mfw_FileManager.h
-*
-* This provides the functionality of File Manager Applications.
-* It supports file/folder related operations on FFS and MMC
-*
-* @path  \bmi\condat\ms\src\mfw
-*
-* @rev  00.01
-*/
-/* ========================================================== */
-/*===========================================================
-*!
-*! Revision History
-*! ===================================
-	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.
-	
-	Mar 28, 2007   ER: OMAPS00106188  x0039928
-	Description: Align Midi application menu choices and audio Player menu choices 
-
-*! 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.
-* =========================================================== */
-
-
-#ifndef DEF_MFW_FILEMANAGER
-#define DEF_MFW_FILEMANAGER
-//Includes for Image Services
-#include "msl/inc/msl_imgthmb.h"
-#include "msl/inc/msl_imgview.h" 
-//Includes for Audio Services
-#include "as/as_api.h" 
-#include "as/as_message.h"
-
-
-/*******************************************************************************
-                                                                              
-                                Interface constants
-                                                                              
-*******************************************************************************/
-#define FM_MAX_EXT_LENGTH	   5
-#define FM_MAX_OBJ_NAME_LENGTH  200// 45
-#ifdef FF_MMI_UNICODE_SUPPORT
-/* x0083025 OMAPS00156759 
- * Changed from 250 to 100 because to much memory is being taken when unicode 
- * is enabled (2 bytes per char) and system would eventually crash */
-#define FM_MAX_DIR_PATH_LENGTH 100
-#else
-#define FM_MAX_DIR_PATH_LENGTH 250
-#endif
-#define FM_MAX_OBJ_DATE_LENGTH 15
-#define FM_MAX_OBJ_TIME_LENGTH 15
-
-#define FM_COPY_BUFFER_SIZE 	1000
-
-#define FM_MAX_OBJ  20
-#define E_FM_THMB_INIT			(T_MFW_EVENT)0x00000001
-#define E_FM_THMB_DEINIT           (T_MFW_EVENT)0x00000010
-#define E_FM_THMB_GEN			(T_MFW_EVENT)0x00000100
-#define E_FM_IMG_INIT			(T_MFW_EVENT)0x00001000
-#define E_FM_IMG_DEINIT		(T_MFW_EVENT)0x00010000
-#define E_FM_IMG_DRAW			(T_MFW_EVENT)0x00100000
-#define E_FM_AUDIO_STOP		(T_MFW_EVENT)0x01000000
-#define E_FM_AUDIO_PROG		(T_MFW_EVENT)0x10000000
-#define E_FM_ALL_SERVICES		(T_MFW_EVENT)0xFFFFFFFF
-//Image 
-
-typedef enum
-{
-	FM_UCP_ERROR_FATAL = -8,
-	FM_UCP_ERROR_NONFATAL,
-	FM_UCP_ERROR_UNKNOWN,
-	FM_UCP_ERROR_INVALID_ARGUMENT,
-	FM_UCP_ERROR_BAD_STREAM,
-	FM_UCP_ERROR_NO_MEM,
-	FM_UCP_ERROR_READ_FAILED,
-	FM_UCP_ERROR,
-	FM_UCP_NONE = 0,
-	FM_UCP_NO_ERROR,
-	FM_UCP_THMB_INIT,
-	FM_UCP_THMB_GEN,
-	FM_UCP_THMB_DEINIT,
-	FM_UCP_THMBIMG_INIT,
-	FM_UCP_THMBIMG_DRAW,
-	FM_UCP_THMBIMG_DEINIT,
-	FM_UCP_QCIFIMG_INIT,
-	FM_UCP_QCIFIMG_DRAW,
-	FM_UCP_QCIFIMG_DEINIT
-}T_FM_IMG_STATE;
-typedef struct
-{
-	T_FM_IMG_STATE state;
-	T_FM_IMG_STATE cmd;
-	int ipMsl;
-}T_FM_IMG;
-
-typedef struct
-{
-	BOOL thumbnail;
- }T_FM_OBJ_IMAGE;
-#define MFW_FM_ZOOM_LOW 	 1024
-#define MFW_FM_ZOOM_MAX	 (8 * MFW_FM_ZOOM_LOW)
-typedef enum
-{
-	MFW_FM_ROTATE_0 = 	0,
-	MFW_FM_ROTATE_90, 
-	MFW_FM_ROTATE_180,
-	MFW_FM_ROTATE_270,
-	MFW_FM_ROTATE_MAX
-}T_FM_IMG_ROTATE;
-//Audio
-typedef enum
-{
-	FM_AUD_ERROR_NOTALLOWED = -12,
-	FM_AUD_ERROR_AUDIO,
-	FM_AUD_ERROR_DENIED,
-	FM_AUD_ERROR_PLAYER,
-	FM_AUD_ERROR_FFS,
-	FM_AUD_ERROR_MSGING,
-	FM_AUD_ERROR_NOTREADY,
-	FM_AUD_ERROR_INVALIDPARAM,
-	FM_AUD_ERROR_INTERNAL,
-	FM_AUD_ERROR_MEM,
-	FM_AUD_ERROR_NOTSUPPORTED,
-	FM_AUD_ERROR = -1 ,
-	FM_AUD_NO_ERROR,
-	FM_AUD_NONE,
-	FM_AUD_PLAY,
-	FM_AUD_FORWARD,
-	FM_AUD_REWIND,
-	FM_AUD_PAUSE,
-	FM_AUD_STOP,
-}T_FM_AUD_STATE;
-
-#define FM_AUD_MIDI_CHANNEL_MONO      1
-#define FM_AUD_MIDI_CHANNEL_STEREO   2
-
-#define FM_AUD_MP3_CHANNEL_MONO      0
-#define FM_AUD_MP3_CHANNEL_STEREO   1
-
-#define FM_AUD_AAC_CHANNEL_MONO      0
-#define FM_AUD_AAC_CHANNEL_STEREO   1
-#define FM_MFW_QCIF_WIDTH 176
-#define FM_MFW_QCIF_HEIGHT 144
-#define FM_MFW_PREVIEW_WIDTH  48
-#define FM_MFW_PREVIEW_HEIGHT 48
-
-typedef struct
-{
-	T_FM_AUD_STATE state;
-}T_FM_AUD;
-
-typedef struct
-{
-	BOOL hidden;
-}T_FM_OBJ_AUDIO;
-
-typedef enum
-{
-	FM_IMAGE=0,
-	FM_AUDIO
-}T_FM_APP_TYPE;	
-
-//Misc
-typedef enum
-{
-	FM_INVALID=-1,
-	FM_NOR_FLASH,
-	FM_NORMS_FLASH,
-	FM_NAND_FLASH,
-	FM_T_FLASH
-}T_FM_DEVICE_TYPE;	
-typedef enum
-{
-	FM_NONE=-1,
-	FM_OPEN,
-	FM_BACK,
-	FM_COPY,
-	FM_MOVE,
-	FM_OPTIONS_FILE,
-	FM_OPTIONS_FOLDER,
-	FM_IMGVIEW,
-	FM_RENAME,
-	FM_DELETE,
-	FM_NEWDIR,
-	FM_REMOVE
-}T_FM_OPERATION_TYPE;	
-
-typedef enum
-{
-	OBJECT_TYPE_NONE=-1,
-	OBJECT_TYPE_FILE,
-	OBJECT_TYPE_AUDIO,
-	OBJECT_TYPE_AUDIO_MIDI,
-	OBJECT_TYPE_AUDIO_MP3,
-	OBJECT_TYPE_AUDIO_AAC,
-	OBJECT_TYPE_IMAGE,
-	OBJECT_TYPE_FOLDER,
-	OBJECT_TYPE_IMAGE_FOLDER,
-	OBJECT_TYPE_AUDIO_FOLDER,
-	OBJECT_TYPE_AUDIO_XMF,                       /* Apr 06, 2007 DRT: OMAPS00124874 x0039928 */
-	OBJECT_TYPE_AUDIO_IMY,
-	OBJECT_TYPE_AUDIO_MMF,
-	OBJECT_TYPE_AUDIO_MXMF,
-	OBJECT_TYPE_AUDIO_SMS,
-	OBJECT_TYPE_AUDIO_WAV
-}T_FM_OBJ_TYPE;
-
-typedef enum
-{
-	FM_COPY_ERROR = -1,
-	FM_COPY_NONE,
-	FM_COPY_START,
-	FM_COPY_PROGRESS,
-	FM_COPY_DONE
-}T_FM_COPY_STATE;
-typedef enum
-{
-	FM_STATE_NONE=0,	
-	FM_STATE_ERROR
-}T_MFW_FM_STATE;
-typedef enum
-{
-	FM_NO_ERROR=0,
-	FM_DIR_DOESNOTEXISTS,
-	FM_FILE_EXISTS,
-	FM_FILE_DOESNOTEXISTS,
-	FM_READDIR_ERROR,
-	FM_RENAME_ERROR,
-	FM_DELETE_ERROR,
-	FM_DELETE_DIRNOTEMPTY,
-	FM_DIR_EXISTS,
-	FM_FORMAT_ERROR
-}T_MFW_FM_STATUS;
-
-
-typedef struct
-{
-	UINT32 aud_tt;
-	UINT16 aud_pt;
-}T_MFW_AUD_PARA;
-
-typedef union
-{
-	T_FM_AUD aud;
-	T_FM_IMG img;
-}T_FM_DIRTYPE_INFO;
-
-typedef union
-{
-	T_FM_IMG_STATE img_state;
-	T_FM_AUD_STATE aud_state;
-} T_MFW_FM_PARA;
-
-typedef union
-{
-	T_FM_OBJ_AUDIO audio;
-	T_FM_OBJ_IMAGE image;
-}T_FM_OBJ_DATA;
-
-typedef struct
-{
-	char name[FM_MAX_OBJ_NAME_LENGTH];
-	#ifdef FF_MMI_UNICODE_SUPPORT
-		T_WCHAR name_uc[FM_MAX_OBJ_NAME_LENGTH];
-	#endif
-	T_FM_OBJ_TYPE type;
-}T_FM_OBJ;
-
-typedef struct
-{
-	char name[15];
-}T_FM_OBJ_ITEM;
-
-typedef struct
-{
-	int size;
-	char date[FM_MAX_OBJ_DATE_LENGTH];
-	char time[FM_MAX_OBJ_TIME_LENGTH];
-}T_FM_OBJ_PROPERTIES;
-
-typedef struct
-{
-	T_FM_OBJ       *obj_list[FM_MAX_OBJ];
-	T_FM_OBJ_PROPERTIES *obj_properties[FM_MAX_OBJ];
-	T_FM_OBJ_DATA *obj_data[FM_MAX_OBJ];
-	UBYTE                      num_objs;
-	char                         dir_name[FM_MAX_OBJ_NAME_LENGTH];
-	char                         dir_path[FM_MAX_DIR_PATH_LENGTH];
-	T_FM_OBJ_TYPE        dir_type;
-	int                            depth;	
-	int                            startIndex;
-	int	                        currentIndex;
-	T_FM_DIRTYPE_INFO     dirinfo;
-}T_FM_CURDIR;
-typedef struct
-{
-	T_FM_OBJ       *obj_list[FM_MAX_OBJ];
-	UBYTE                      num_objs;
-	char                         dir_name[FM_MAX_OBJ_NAME_LENGTH];
-	char                         dir_path[FM_MAX_DIR_PATH_LENGTH];
-	T_FM_OBJ_TYPE        dir_type;
-	int	                        currentIndex;
-	int                            depth;	
-}T_FM_DESTDIR;
-typedef struct
-{
-    T_MFW_EVENT      emask;         /* events of interest */
-    T_MFW_EVENT      event;          /* current event */
-    T_MFW_CB           handler;
-    T_MFW_FM_PARA  para;
-} T_MFW_FM;
-typedef struct
-{
-
-	T_RFS_FD sourceFileID;
-//	int sourceFileID;
-#ifdef FF_MMI_UNICODE_SUPPORT
-	T_WCHAR *sourceFile;
-#else
-	char *sourceFile;
-#endif
-	T_FM_DEVICE_TYPE source_type;
-	int  sourceFileSize;
-
-	T_RFS_FD destFileID;
-//	int destFileID;
-#ifdef FF_MMI_UNICODE_SUPPORT
-	T_WCHAR *destinationFile;
-#else
-	char *destinationFile;
-#endif
-	T_FM_DEVICE_TYPE destination_type;
-	char *buf;
-	T_RFS_SIZE buf_size;
-	int  bytesRead;
-	T_FM_COPY_STATE state;
-}T_MFW_FM_COPYMOVE_STRUCT;
-
-#define THUMB "thumbnail"
-
-#define NORDIR "/mmi/"
-#define NORDIR_IMG "jpeg"
-#define NORDIR_AUD "tones"
-
-#define NORMSDIR "/"
-#define NORMSDIR_IMG "jpeg"
-#define NORMSDIR_AUD "tones"
-
-#define NANDDIR "/"
-#define NANDDIR_IMG  "jpeg"
-#define NANDDIR_AUD  "tones"
-
-#define TFLASHDIR "/"
-#define TFLASHDIR_IMG "jpeg"
-#define TFLASHDIR_AUD "tones"
-
-
-
-void mfw_fm_readProperties(char *dir_path, char *dir_name, UBYTE num_objs, T_FM_OBJ **obj_list, T_FM_OBJ_PROPERTIES **obj_properties,T_FM_DEVICE_TYPE  source, T_FM_APP_TYPE app);
-void mfw_fm_readFileFolders(char *dir_path, char *dir_name, UBYTE num_objs, T_FM_OBJ **obj_list, T_FM_DEVICE_TYPE  source);
-T_MFW_FM_STATUS mfw_fm_create_rootdir(T_FM_DEVICE_TYPE  source);
-T_MFW_HND mfw_fm_create(T_MFW_HND hWin, T_MFW_EVENT event, T_MFW_CB cbfunc);
-T_MFW_RES mfw_fm_delete(T_MFW_HND hnd);
-T_MFW_FM_STATUS mfw_fm_format(T_FM_DEVICE_TYPE  source)	;
-#ifdef FF_MMI_UNICODE_SUPPORT
-T_MFW_FM_STATUS mfw_fm_rename(T_WCHAR* old_filename, T_WCHAR* new_filename, T_FM_DEVICE_TYPE  source);
-T_MFW_FM_STATUS mfw_fm_remove(T_WCHAR* objname,T_FM_DEVICE_TYPE  source);
-#else
-T_MFW_FM_STATUS mfw_fm_rename(char* old_filename, char * new_filename, T_FM_DEVICE_TYPE  source);
-T_MFW_FM_STATUS mfw_fm_remove(char* objname,T_FM_DEVICE_TYPE  source);	
-#endif
-
-T_MFW_FM_STATUS mfw_fm_rename_image(char * path, char * dirname, char* old_filename, char * new_filename,T_FM_DEVICE_TYPE  source);
-T_MFW_FM_STATUS mfw_fm_remove_image(char * path, char * dirname, char* objname,T_FM_DEVICE_TYPE  source)	;
-T_MFW_FM_STATUS mfw_fm_newdir(char *dirname, T_FM_DEVICE_TYPE  source);
-T_MFW_FM_STATUS mfw_fm_createRootDir(T_FM_DEVICE_TYPE  source);
-T_FM_COPY_STATE mfw_fm_copy_start(T_MFW_FM_COPYMOVE_STRUCT *data)	;
-T_FM_COPY_STATE mfw_fm_copy_continue(T_MFW_FM_COPYMOVE_STRUCT *data)	;
-void mfw_fm_getMemStat(int *nfree, int *nused,T_FM_DEVICE_TYPE  source);
-
-
-//Image
-T_FM_IMG_STATE  mfw_fm_imgThmb_create(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_init(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_destroy(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_deinit(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_pause(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_generate(void);
-T_FM_IMG_STATE  mfw_fm_imgThmb_setparams(char * inFilepath, char* inFilename, int width,int height,T_FM_DEVICE_TYPE  source);
-T_FM_IMG_STATE  mfw_fm_imgThmb_setcallback(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_create(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_init(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_destroy(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_deinit(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_pause(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_view(void);
-T_FM_IMG_STATE  mfw_fm_imgViewer_setparams(char * inFilepath, char* inFilename, int width,int height);
-T_FM_IMG_STATE  mfw_fm_imgViewer_setcallback(void);
-void mfw_fm_thmb_mslcb( U32 tCMd,U32 tStatus);
-void mfw_fm_view_mslcb( U32 tCMd,U32 tStatus);
-T_MFW_FM_STATUS mfw_fm_checkThumbnail( char * obj,T_FM_DEVICE_TYPE  source);
-T_FM_IMG_STATE  mfw_fm_imgViewer_setConfigs(char *filename,int width, int height,int xoffset, int yoffset,U32 zFactor,int rotation_degree, T_FM_DEVICE_TYPE  source);
-T_FM_IMG_STATE  mfw_fm_imgViewer_setImageProperty( char * filepath, char *filename, int width, int height,int xoffset, int yoffset,T_FM_DEVICE_TYPE  source);
-void mfw_fm_thmb_mslcb( U32 tCMd,U32 tStatus);
-void mfw_fm_view_mslcb( U32 tCMd,U32 tStatus);
-
-
-
-//Audio
-T_FM_AUD_STATE mfw_fm_audStop(void);
-#ifdef FF_MMI_UNICODE_SUPPORT
-T_FM_AUD_STATE mfw_fm_audPlay(T_WCHAR * file_name, T_FM_OBJ_TYPE file_type, BOOL play_bar);
-#else
-T_FM_AUD_STATE mfw_fm_audPlay(char * file_name, T_FM_OBJ_TYPE file_type, BOOL play_bar);
-#endif
-T_FM_OBJ_TYPE mfw_fm_aud_get_type(char * file_name);
-T_FM_AUD_STATE mfw_fm_audPause(void);
-T_FM_AUD_STATE mfw_fm_audResume(void);
-T_MFW_FM_STATUS mfw_fm_readDir(char *dir_path, char *dir_name, UBYTE *num_objs, T_FM_OBJ **obj_list, T_FM_DEVICE_TYPE  source, T_FM_APP_TYPE  app);
-/* OMAPS00151698, x0056522 */
-void mfw_fm_audPlay_cb(void *parameter);
-
-/*********************************/
-
-#if 0
-typedef UINT16 T_RFS_MODE;
-
-#define RFS_IXUSR   0x0100  // Execute permission for the user
-#define RFS_IWUSR   0x0200  // Write permission for the user
-#define RFS_IRUSR   0x0400  // Read permission for the user
-#define RFS_IRWXU   0x0700  // Read Write permission mask (default) for the user
-
-#define RFS_IXGRP   0x0010  // Execute permission for group
-#define RFS_IWGRP   0x0020  // Write permission for group
-#define RFS_IRGRP   0x0040  // Read permission for group
-#define RFS_IRWXG   0x0070  // Read Write permission mask (default) for group
-
-#define RFS_IXOTH   0x0001  // Execute permission for others
-#define RFS_IWOTH   0x0002  // Write permission for others
-#define RFS_IROTH   0x0004  // Read permission for others
-#define RFS_IRWXO   0x0007  // Read Write permission mask (default) for others
-
-typedef INT32 T_RFS_RET;
-
-#define RFS_EOK               0
-
-#define RFS_ENODEVICE         -1
-#define RFS_EAGAIN            -2
-#define RFS_ENOSPACE          -3
-#define RFS_EFSFULL           -4
-#define RFS_EBADNAME          -5
-#define RFS_ENOENT            -6
-#define RFS_EEXISTS           -7
-#define RFS_EACCES            -8
-#define RFS_ENAMETOOLONG      -9
-#define RFS_EINVALID          -10
-#define RFS_ENOTEMPTY         -11
-#define RFS_EFBIG             -12
-#define RFS_ENOTAFILE         -13
-#define RFS_ENUMFD            -14
-#define RFS_EBADFD            -15
-#define RFS_EBADDIR           -16
-#define RFS_EBADOP            -17
-#define RFS_ELOCKED           -18
-#define RFS_EMOUNT            -19
-#define RFS_EDEVICE           -20
-#define RFS_EBUSY             -21
-#define RFS_ENOTADIR          -22
-#define RFS_EMAGIC            -23
-#define RFS_EMEMORY           -24
-#define RFS_EMSGSEND          -25
-#define RFS_ENOTALLOWED       -26
-#define RFS_ENOTSUPPORTED     -27
-#define RFS_EEMPTY            -28
-#define RFS_EINTERNALERROR    -29
-#define RFS_CORRUPT_LFN       -30
-#define RFS_E_FILETOOBIG      -31
-
-
-typedef union {
-    T_RFS_FS_STAT         file_system;
-    T_RFS_MP_STAT         mount_point;
-    T_RFS_FILE_DIR_STAT   file_dir;
-} T_RFS_STAT;
-
-/* Defines the DIR type. This represents a directory stream, which is an ordered
- * sequence of all the di-rectory entries (files) in a particular directory.
- */
-typedef struct {
-    UINT32    opendir_ino;  // inode of directory that was opened
-    UINT32    lastread_ino; // last inode of the read direcoty entry
-    UINT8     mpt_idx;      // mount point where the directory is located
-    UINT8     fscore_nmb; // file system type
-} T_RFS_DIR;
-
-typedef enum
-{
-	FFS_ATTRIB_READWRITE   	= FFS_ATTRIB_READWRITE_MASK,
-	FFS_ATTRIB_READONLY    	= FFS_ATTRIB_READONLY_MASK,
-	FFS_ATTRIB_HIDDEN 		= FFS_ATTRIB_HIDDEN_MASK,
-	FFS_ATTRIB_SYSTEM		= FFS_ATTRIB_SYSTEM_MASK,
-	FFS_ATTRIB_SUBDIR       = FFS_ATTRIB_SUBDIR_MASK,
-	FFS_ATTRIB_ARCHIVE	    = FFS_ATTRIB_ARCHIVE_MASK,
-	FFS_ATTRIB_INVALID
-}T_FFS_ATTRIB_TYPE;
-
-/**********************************/
-#endif
-
-#endif
-