159 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /**
 | |
|     Playback FileList plugin module.
 | |
| 
 | |
|     All function for Playback fileList handle, This module can be a plug-in to Application Playback.
 | |
| 
 | |
|     @file       PBXFileList.h
 | |
|     @ingroup    mILibPbFileList
 | |
| 
 | |
|     Copyright   Novatek Microelectronics Corp. 2013.  All rights reserved.
 | |
| */
 | |
| 
 | |
| #ifndef _PBXFILELIST_H
 | |
| #define _PBXFILELIST_H
 | |
| 
 | |
| #include <kwrap/nvt_type.h>
 | |
| 
 | |
| /**
 | |
|     @addtogroup mILibPbFileList
 | |
| */
 | |
| //@{
 | |
| 
 | |
| #define PBX_FLIST_NAME_MAX_LENG                  60
 | |
| 
 | |
| /**
 | |
| 
 | |
|     The fileList support file type.
 | |
| */
 | |
| //@{
 | |
| #define PBX_FLIST_FILE_TYPE_JPG                 (0x0001)  ///< bit 0 -> JPG file type, file extension is *.JPG
 | |
| #define PBX_FLIST_FILE_TYPE_AVI                 (0x0002)  ///< bit 1 -> AVI file type, file extension is *.AVI
 | |
| #define PBX_FLIST_FILE_TYPE_WAV                 (0x0004)  ///< bit 2 -> WAV file type, file extension is *.WAV
 | |
| #define PBX_FLIST_FILE_TYPE_RAW                 (0x0008)  ///< bit 3 -> RAW file type, file extension is *.RAW
 | |
| #define PBX_FLIST_FILE_TYPE_TIF                 (0x0010)  ///< bit 4 -> TIF file type, file extension is *.TIF
 | |
| #define PBX_FLIST_FILE_TYPE_MPO                 (0x0020)  ///< bit 5 -> MPO file type, file extension is *.MPO
 | |
| #define PBX_FLIST_FILE_TYPE_MOV                 (0x0040)  ///< bit 6 -> MOV file type, file extension is *.MOV
 | |
| #define PBX_FLIST_FILE_TYPE_MP4                 (0x0080)  ///< bit 7 -> MP4 file type, file extension is *.MP4
 | |
| #define PBX_FLIST_FILE_TYPE_MPG                 (0x0100)  ///< bit 8 -> MPG file type, file extension is *.MPG
 | |
| #define PBX_FLIST_FILE_TYPE_ASF                 (0x0200)  ///< bit 9 -> ASF file type, file extension is *.ASF
 | |
| #define PBX_FLIST_FILE_TYPE_TS                  (0x0400)  ///< bit 10 -> TS file type, file extension is *.TS
 | |
| #define PBX_FLIST_FILE_TYPE_ANYFORMAT           (0x07FF)  ///< any file format means JPG|AVI|WAV|RAW|TIF|MPO|MOV|MP4|MPG|ASF
 | |
| //@}
 | |
| 
 | |
| 
 | |
| /**
 | |
|      The fileList sorting type.
 | |
| */
 | |
| typedef enum _PBX_FLIST_SORT_TYPE {
 | |
| 	PBX_FLIST_SORT_BY_NONE = 0x00,               ///< no sort, the sequence depends on the file sequence in disk
 | |
| 	PBX_FLIST_SORT_BY_CREDATE,                   ///< sort by the file create time
 | |
| 	PBX_FLIST_SORT_BY_MODDATE,                   ///< sort by the file modify time
 | |
| 	PBX_FLIST_SORT_BY_NAME,                      ///< sort by the file name
 | |
| 	PBX_FLIST_SORT_BY_FILEPATH,                  ///< sort by the full file path
 | |
| 	PBX_FLIST_SORT_BY_SN,                        ///< sort by the Serial number
 | |
| } PBX_FLIST_SORT_TYPE;
 | |
| 
 | |
| 
 | |
| /**
 | |
|      The fileList config ID.
 | |
| 
 | |
|      @note for the parameter ConfigID of Config() function.
 | |
| */
 | |
| typedef enum _PBX_FLIST_CONFIG_ID {
 | |
| 	PBX_FLIST_CONFIG_MEM                        = 0x01,    ///< only for FileDB, the heap memory need to used
 | |
| 	PBX_FLIST_CONFIG_MAX_FILENUM                = 0x02,    ///< only for FileDB, the max files number
 | |
| 	PBX_FLIST_CONFIG_MAX_FILEPATH_LEN           = 0x03,    ///< only for FileDB, the max file path length
 | |
| 	PBX_FLIST_CONFIG_VALID_FILETYPE             = 0x04,    ///< set valid file type, ex:PBX_FLIST_FILE_TYPE_JPG|PBX_FLIST_FILE_TYPE_AVI
 | |
| 	PBX_FLIST_CONFIG_DEP_FILETYPE               = 0x05,    ///< only for DCF, set DCF dependence file format
 | |
| 	PBX_FLIST_CONFIG_DCF_ONLY                   = 0x06,    ///< only for FileDB, if search the file just keep the DCF file only and filter out other files.
 | |
| 	PBX_FLIST_CONFIG_SORT_TYPE                  = 0x07,    ///< only for FileDB, sorting the Files by sortType.
 | |
| 	PBX_FLIST_CONFIG_ROOT_PATH                  = 0x08,    ///< only for FileDB, set the root path
 | |
| 	PBX_FLIST_CONFIG_DEFAULT_FOLDER             = 0x09,    ///< only for FileDB, set the default folder
 | |
| 	PBX_FLIST_CONFIG_FILTER_FOLDER              = 0x0A,    ///< only for FileDB, set the filter folder
 | |
| 	PBX_FLIST_CONFIG_SUPPORT_LONGNAME           = 0x0B,    ///< only for FileDB, set if support long file name
 | |
| 	PBX_FLIST_CONFIG_SORT_LARGEFIRST            = 0x0C,    ///< only for FileDB, sorting sequence is large first or not
 | |
| 	PBX_FLIST_CONFIG_SKIPDIR_FOR_NONRECURSIVE   = 0x0D,    ///< only for FileDB, set if skip folders for non-recursive scan
 | |
| 	PBX_FLIST_CONFIG_SKIPHIDDEN                 = 0x0E,    ///< only for FileDB, set if skip hidden files and folders
 | |
| 	PBX_FLIST_CONFIG_RECURSIVE                  = 0x0F,    ///< only for FileDB, set if recursive scan sub folders
 | |
| 	PBX_FLIST_CONFIG_SORT_BYSN_DELIMSTR         = 0x10,	   ///< only for FileDB, set the delimiter string, e.g. underline "_", "AA"
 | |
| 	PBX_FLIST_CONFIG_SORT_BYSN_DELIMNUM         = 0x11,    ///< only for FileDB, set the delimiter count to find the serial number
 | |
| 	PBX_FLIST_CONFIG_SORT_BYSN_NUMOFSN          = 0x12,	   ///< only for FileDB, set the character number of the serial number
 | |
| 	PBX_FLIST_CONFIG_DCF_HANDLE                 = 0x13,    ///< only for DCF , multi storage DCF handle
 | |
| 	ENUM_DUMMY4WORD(PBX_FLIST_CONFIG_ID)
 | |
| } PBX_FLIST_CONFIG_ID;
 | |
| 
 | |
| /**
 | |
|      The fileList set info ID.
 | |
| 
 | |
|      @note for the parameter InfoID of SetInfo() function.
 | |
| */
 | |
| 
 | |
| typedef enum _PBX_FLIST_SETINFO_ID {
 | |
| 	PBX_FLIST_SETINFO_CURINDEX         = 0x21,
 | |
| 	ENUM_DUMMY4WORD(PBX_FLIST_SETINFO_ID)
 | |
| } PBX_FLIST_SETINFO_ID;
 | |
| 
 | |
| 
 | |
| /**
 | |
|      The fileList get info ID.
 | |
| 
 | |
|      @note for the parameter InfoID of GetInfo() function.
 | |
| */
 | |
| 
 | |
| typedef enum _PBX_FLIST_GETINFO_ID {
 | |
| 	PBX_FLIST_GETINFO_FILESEQ          = 0x41,    ///< File sequence ID
 | |
| 	PBX_FLIST_GETINFO_FILENUMS         = 0x42,    ///< Total file number
 | |
| 	PBX_FLIST_GETINFO_READONLY         = 0x43,    ///< Is this file Read only
 | |
| 	PBX_FLIST_GETINFO_FILESIZE64       = 0x44,    ///< File size (UINT64)
 | |
| 	PBX_FLIST_GETINFO_FILETYPE         = 0x45,    ///< File type
 | |
| 	PBX_FLIST_GETINFO_FILEPATH         = 0x46,    ///< File path (CHAR *)
 | |
| 	PBX_FLIST_GETINFO_ISWITHMEMO       = 0x47,    ///< Is this file with Vioce memo
 | |
| 	PBX_FLIST_GETINFO_FILEID           = 0x48,    ///< only for DCF, the current file ID
 | |
| 	PBX_FLIST_GETINFO_DIRID            = 0x49,    ///< only for DCF, the current folder ID
 | |
| 	PBX_FLIST_GETINFO_VALID_FILETYPE   = 0x4A,    ///< only for DCF, the valid file type of DCF
 | |
| 	PBX_FLIST_GETINFO_FILENUMS_INDIR   = 0x4B,    ///< only for DCF, the file number count of current folder
 | |
| 	PBX_FLIST_GETINFO_FILESEQ_INDIR    = 0x4C,    ///< only for DCF, the file sequence in current folder
 | |
| 
 | |
| 	PBX_FLIST_GETINFO_MODDATE          = 0x4D,    ///< only for FileDB, the file modify date
 | |
| 
 | |
| 	PBX_FLIST_GETINFO_DB_HANDLE        = 0x61,    ///< DB handle
 | |
| 	ENUM_DUMMY4WORD(PBX_FLIST_GETINFO_ID)
 | |
| } PBX_FLIST_GETINFO_ID;
 | |
| 
 | |
| /**
 | |
|     seek index command.
 | |
| 
 | |
|     @note for the parameter seekCmd of SeekIndex() function.
 | |
| */
 | |
| typedef enum _PBX_FLIST_SEEK_CMD {
 | |
| 	PBX_FLIST_SEEK_SET = 0,                      ///< set index to offset
 | |
| 	PBX_FLIST_SEEK_CUR,                          ///< jump offset from current index
 | |
| 	PBX_FLIST_SEEK_END,                          ///< jump offset from last index
 | |
| 	PBX_FLIST_SEEK_MAX_ID,                       ///< total seek command numbers
 | |
| 	ENUM_DUMMY4WORD(PBX_FLIST_SEEK_CMD)
 | |
| } PBX_FLIST_SEEK_CMD;
 | |
| 
 | |
| 
 | |
| /**
 | |
|     Type defintion struture of playback file list object.
 | |
| 
 | |
|     Type defintion struture of playback file list object functions.
 | |
| */
 | |
| typedef struct {
 | |
| 	ER(*Config)(UINT32 ConfigID, UINT32 param1, UINT32 param2);      ///< Config some setting for file list
 | |
| 	ER(*Init)(void);                                                 ///< initialize file list
 | |
| 	ER(*UnInit)(void);                                               ///< Un-initialize file list
 | |
| 	ER(*GetInfo)(UINT32  InfoID, VOID *pparam1, VOID *pparam2);      ///< Get some info of file list
 | |
| 	ER(*SetInfo)(UINT32  InfoID, UINT32 param1, UINT32 param2);      ///< Set some info of file list
 | |
| 	ER(*SeekIndex)(INT32 offset, PBX_FLIST_SEEK_CMD seekCmd);        ///< Seek the current index of file list
 | |
| 	ER(*MakeFilePath)(UINT32  fileType, CHAR *path);                 ///< Make a file path for create a new file
 | |
| 	ER(*AddFile)(CHAR *path);                                        ///< Add a file to the file list
 | |
| 	ER(*Refresh)(void);                                              ///< Refresh the file list data base
 | |
| } PBX_FLIST_OBJ, *PPBX_FLIST_OBJ;
 | |
| 
 | |
| 
 | |
| //@}
 | |
| 
 | |
| #endif //_PBXFILELIST_H
 | |
| 
 | 
