nt9856x/code/lib/include/NamingRule/NameRule_Custom.h
2023-03-28 15:07:53 +08:00

232 lines
6.7 KiB
C
Executable File

/**
Header file of media naming rule library
Exported header file of media naming rule library.
@file NameRule_Custom.h
@ingroup mIMEDIAWRITE
@note 1st version.
@version V1.00.001
@date 2015/06/01
Copyright Novatek Microelectronics Corp. 2005. All rights reserved.
*/
#ifndef _NAMERULECUSTOM_H
#define _NAMERULECUSTOM_H
#include "avfile/MediaReadLib.h"
#include "avfile/MediaWriteLib.h"
#include "NameRule_FileDB.h"
/**
@addtogroup mIMEDIAWRITE
*/
//@{
typedef enum {
NRCUS_ID_1, ///< namerule_ID_1 = 0
NRCUS_ID_2, ///< namerule_ID_2 = 1
NRCUS_ID_3, ///< namerule_ID_3 = 2
NRCUS_ID_4, ///< namerule_ID_4 = 3
NRCUS_ID_5, ///< namerule_ID_5 = 4
NRCUS_ID_6, ///< namerule_ID_6 = 5
NRCUS_ID_7, ///< namerule_ID_7 = 6
NRCUS_ID_8, ///< namerule_ID_8 = 7
NRCUS_ID_9, ///< namerule_ID_9 = 8
NRCUS_ID_10, ///< namerule_ID_10 = 9
NRCUS_ID_11, ///< namerule_ID_11 = 10
NRCUS_ID_12, ///< namerule_ID_12 = 11
NRCUS_ID_13, ///< namerule_ID_13 = 12
NRCUS_ID_14, ///< namerule_ID_14 = 13
NRCUS_ID_15, ///< namerule_ID_15 = 14
NRCUS_ID_16, ///< namerule_ID_16 = 15
NRCUS_ID_MAX, ///< namerule_ID maximum
ENUM_DUMMY4WORD(NRCUS_ID)
} NRCUS_ID;
/*
Public funtions to use fileformat maker
*/
//@{
#define NAMEHDL_CUSTOM_CHECKID 0x63757374 ///< 'cust' as checkID
typedef enum {
NMC_FILEPATH_METHOD_1 = 1,//give full filepath
NMC_FILEPATH_METHOD_2, //using NH_Custom_BuildFullPath
NMC_FILEPATH_METHOD_3, //using default 20150615_120000_xxxA.mp4
NMC_FILEPATH_METHOD_MAX,//using default 20150615_120000_xxxA.mp4
ENUM_DUMMY4WORD(NMC_FILEPATH_METHO)
} NMC_FILEPATH_METHO;
#define NMC_ROOT_MAX_LEN 20
#define NMC_OTHERS_MAX_LEN 20
#define NMC_TOTALFILEPATH_MAX_LEN 80
#define NAMERULECUS_YMDTYPE_YMD 0 //ymd
#define NAMERULECUS_YMDTYPE_MDY 1 //mdy
#define NAMERULECUS_YMDTYPE_DMY 2 //dmy
#define NAMERULECUS_TIMETYPE_1 1 //yyyymmdd_hhmmss
#define NAMERULECUS_TIMETYPE_2 2 //yyyy_mmdd_hhmmss
#define NAMERULECUS_TIMETYPE_3 3 //yy-mm-dd_hhmmss
#define NAMERULECUS_TIMETYPE_GIVE 0x80 //using given name
#define NAMERULECUS_FILETYPE_MOV MEDIA_FILEFORMAT_MOV //mov
#define NAMERULECUS_FILETYPE_AVI MEDIA_FILEFORMAT_AVI //avi
#define NAMERULECUS_FILETYPE_MP4 MEDIA_FILEFORMAT_MP4 //mp4
#define NAMERULECUS_FILETYPE_JPG 0x80 //NAMERULE_FMT_JPG
#define NAMERULECUS_FILETYPE_RAW 0x81 //NAMERULE_FMT_RAW
#define NMC_SECONDTYPE_RO 1
#define NMC_SECONDTYPE_MOVIE 2
#define NMC_SECONDTYPE_PHOTO 3
#define NMC_SECONDTYPE_EMR 4
//#define NMC_SECONDTYPE_REAR 5
#define NMC_SECONDTYPE_EV1 6
#define NMC_SECONDTYPE_EV2 7
#define NMC_SECONDTYPE_EV3 8
#define NMC_FILESAVE_PART1 1//SMEDIAREC_FILESAVE_PART1
#define NMC_FILESAVE_PART2 2//SMEDIAREC_FILESAVE_PART2
typedef struct {
UINT32 filetype; //file type, NAMERULECUS_FILETYPE_MOV or others
UINT32 ymdtype; //ymd type, NAMERULECUS_TIMETYPE_1 or others
UINT32 timetype; //time type, NAMERULECUS_TIMETYPE_1 or others
UINT32 en_count; //enable count number or not
UINT32 en_endchar;//enable endchar or not
char *pEndChar;
char *pGiveName;
} NMC_NAMEINFO;
typedef struct {
UINT32 pathid;
CHAR *pRO;
CHAR *pMovie;
CHAR *pPhoto;
CHAR *pEMR;
CHAR *pEvent1;
CHAR *pEvent2;
CHAR *pEvent3;
} NMC_FOLDER_INFO;
//Naming handler
typedef struct {
UINT32 uiYear;
UINT32 uiMonth;
UINT32 uiDate;
UINT32 uiHour;
UINT32 uiMin;
UINT32 uiSec;
UINT32 uiNumber;
UINT32 SecValid;
char ucChar;
} NMC_TIMEINFO;
typedef struct {
UINT32 pathid;
UINT32 secondType;//NMC_SECONDTYPE_MOVIE or others
NMC_TIMEINFO *ptimeinfo;
NMC_NAMEINFO *pnameinfo;
} NMC_FULLPATH_INFO;
typedef struct {
UINT32 pathid;
UINT32 ymdtype; //NAMERULECUS_YMDTYPE_YMD or others
UINT32 timetype; //NAMERULECUS_TIMETYPE_1 or others
UINT32 en_count;
UINT32 en_endChar;
CHAR *pEndChar;
} NMC_METHOD2_INFO;
/**
Get Emtpy naming rule.
Get Emtpy naming rule.
@param[in] void
@return
PMEDIANAMINGRULE Emtpy naming rule
*/
extern PMEDIANAMINGRULE NameRule_getCustom(void);
extern PMEDIANAMINGRULE NameRule_getCustom_byid(UINT32 g_nr_id);
/**
Open CUSTOM naming rule debug msg.
Open CUSTOM naming rule debug msg.
@param[in] on on/off
@return void
*/
extern void NH_Custom_OpenMsg(UINT8 on);
extern BOOL NH_CustomUti_MakeObjPath(NMC_TIMEINFO *ptimeinfo, NMC_NAMEINFO *pInfo, CHAR *filePath, CHAR *frontDir);
extern void NH_Custom_SetWholeDirPath(UINT32 pathid, CHAR *pPath, UINT32 sectype);
extern void NH_Custom_SetFolderPath(NMC_FOLDER_INFO *pInfo);
extern void NH_Custom_BuildFullPath(NMC_FULLPATH_INFO *pFullInfo, CHAR *pOutputName);
extern void NH_CustomUti_MakeDefaultPath(UINT32 pathid, UINT32 sectype, UINT32 filetype, CHAR *pOutputName);
extern void NH_Custom_BuildFullPath_GiveFileName(UINT32 pathid, UINT32 sectype, CHAR *pFileName, CHAR *pOutputName);
extern ER NH_CustomUti_ChangeFrontPath(CHAR *pPath, UINT32 pathid);
extern ER NH_CustomUti_ChangeFrontPath2nd(UINT32 oldtype, UINT32 newtype, CHAR *pPath, UINT32 pathid);
extern void NH_Custom_SetFileHandleID(UINT32 value);
extern void NH_Custom_SetFileID(UINT32 uiFileID);
extern void NH_Custom_MakeDirPath(CHAR *pFirst, CHAR *pSecond, CHAR *pPath, UINT32 pathlen);
extern void NH_Custom_SetRootPath(CHAR *pPath);
extern void NH_Custom_SetDefaultFiletype(UINT32 filetype);//MEDIA_FILEFORMAT_MOV or others
extern void NH_Custom_SetFileHandleIDByPath(UINT32 value, UINT32 pathid);
/**
Set method to make filepath
@param[in] NMC_FILEPATH_METHOD_3 or others (default: NMC_FILEPATH_METHOD_3)
@return void
*/
extern void NH_Custom_SetFilepathMethod(UINT32 type);
/**
Set method 2 parameters.
@param[in] pInfo information to make full filepath by method2
@return void
*/
extern void NH_Custom_SetMethod2Param(NMC_METHOD2_INFO *pInfo);
/**
Make photo full filepath.
@param[in] pathid 0 or 1
@param[in] filetype NAMERULECUS_FILETYPE_JPG
@param[in] pOutputName output full filepath
@return void
*/
extern void NH_CustomUti_MakePhotoPath(UINT32 pathid, UINT32 filetype, CHAR *pOutputName);
/**
Make full filepath.
@param[in] pathid 0 or 1
@param[in] sectype NMC_SECONDTYPE_PHOTO or others
@param[in] filetype NAMERULECUS_FILETYPE_JPG or others
@param[in] pFileName input filename
@param[in] pOutputName output full filepath
@return void
*/
extern void NH_Custom_BuildFullPath_GiveFileNameWithFiletype(UINT32 pathid, UINT32 sectype, UINT32 filetype, CHAR *pFileName, CHAR *pOutputName);
extern void NH_Custom_SetRootPathByPath(UINT32 pathid, CHAR *pPath);
//@}
#endif//_NAMERULECUSTOM_H
//@}