232 lines
6.7 KiB
C
Executable File
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
|
|
|
|
//@}
|
|
|
|
|