FreeCalypso > hg > fc-magnetite
diff src/ui3/mfw/mfw_fm.h @ 420:e8ddbb0837ed
src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 21 Jan 2018 03:09:00 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ui3/mfw/mfw_fm.h Sun Jan 21 03:09:00 2018 +0000 @@ -0,0 +1,526 @@ +/* ========================================================= +* 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 +