📄 infofilter.h
字号:
{ FILENAMEINFO FileName; // 14 bytes WORD wNextFileRecord; // 2 bytes ENTRY_RANGE FileRange; // 8 bytes BYTE bFileAttr; // 1 bytes WORD wPrevFileRecord; // 2 bytes DWORD dwFileTime; // 4 bytes}FILE_RECORD, *PFILE_RECORD;// wyc1.10-909, add structure for DivX SRC file parsing.// wyc1.11a, rename define and re-design the config og structure.typedef struct tagMP4SP_RECORD{ FILENAMEINFO MP4SPName; // 14 bytes DWORD dwBeginTime; DWORD dwLen; //DWORD dwMemOffset;}MP4SP_RECORD, *PMP4SP_RECORD;// elmer,typedef struct tagMP4SP_INDEX{ WORD wMMSPRecordEntry; WORD wMMSPRecordEnd;}MP4SP_INDEX, *PMP4SP_INDEX;typedef struct tagFILE_LOG{ BYTE bMaxStringLen; // include end of strng "\0" BYTE bGapbyString; WORD wMaxNO; WORD wActualNO; WORD wTotalNO; WORD wStartNO; // "0" is start, new from WinDVD 0.50 WORD wAttrFilter; // ** TCH1.01b; only support which FILE_FLAG_XXXX BYTE bDirIndex; // wyc1.00, record the ending sector position of current parsing dir. DWORD bDirSectorNum; // wyc1.25, use pFileRecord to replace these two pointer. FILE_RECORD *pFileRecord; void * ptrVoid; char * pName; WORD * pAttr; // FILE_FLAG_XXXX // wyc2.81, need to add TREE record into FILE_LOG for FManager to get the TREE record from CDINFO. BYTE * pTree; // wyc1.10-909, pointer for DivX SP. MP4SP_RECORD *pMP4SPRecord; BYTE bSrcNum;} FILE_LOG, * PFILE_LOG;//////////////////////////////////////////////////// structure definitiontypedef struct tagPATHTABLE{ BYTE LEN_DI; BYTE ExtendedAttribRecordLen; BYTE LocationOfExtent0; BYTE LocationOfExtent1; BYTE LocationOfExtent2; BYTE LocationOfExtent3;/// WORD ParentDirNum; BYTE ParentDirNum[2]; char DirectoryID[128];} PACK_FORMAT PATHTABLE;typedef struct tagDIRRECORD{ BYTE LEN_DR; BYTE ExtendAttribute; BYTE LocationExtent1 [4]; // ** TCH0.452; BYTE LocationExtent2_0; BYTE LocationExtent2_1; BYTE LocationExtent2_2; BYTE LocationExtent2_3; BYTE DataLen1[4]; // ** TCH0.452; BYTE DataLen2[4]; // ** TCH0.452; char Time[7]; // Recording Date adn Time BYTE flags; BYTE FileUnitSize; BYTE InterleaveGap; BYTE VolumeSequence [4]; // ** TCH0.452; BYTE FileIDLen;} PACK_FORMAT DIRRECORD;typedef struct tagNAVIGATE_MODE{ BYTE bNavigateMode; WORD wDiscMediaType;} NAVIGATE_MODE, *PNAVIGATE_MODE;typedef struct tagVTOC{ BYTE DescriptorType; char StandardID[5]; BYTE DescriptorVer; char Unused1; char SystemID[32]; char VolumeID[32]; char Unused2[8]; // ** TCH0.50; 80 bytes/// DWORD VolumeSpace1; BYTE cVolumeSpace1[4]; BYTE VolumeSpace2_0; BYTE VolumeSpace2_1; BYTE VolumeSpace2_2; BYTE VolumeSpace2_3; char Unused3[32]; // ** TCH0.50; 120 bytes DWORD VolumeSet; DWORD VolumeSequence; DWORD LogicBlockSize; DWORD PathSize1; DWORD PathSize2; DWORD LPath; DWORD LOPath; // ** TCH0.50; 148 bytes BYTE MPath0; BYTE MPath1; BYTE MPath2; BYTE MPath3; DWORD MOPath; // ** TCH0.50; 156 bytes char Root[34]; char VolumeSetID[128]; char IDs[256]; char AppID[128];} VTOC;typedef struct tagINFOVCD{ char SystemID[8]; unsigned char VerID0; unsigned char VerID1; char DiscID[16]; unsigned char AlbumVolumes0; unsigned char AlbumVolumes1; unsigned char VolumesNo0; unsigned char VolumesNo1;// below will used by VIDEO_CD 2.00 unsigned char SizeMapTrackMotionPicture[13]; unsigned char StatusFlag; char cPSDSize[4]; unsigned char cSegmentAddress_BCD[3]; unsigned char cMultiplier; char cMaxListID[2]; char cMaxSegmentNO[2]; unsigned char cSegmentPlayItem_Table [1980]; unsigned char cReserved[12];} INFOVCD;typedef struct tagENTRY{ char FileID[8]; int SpecID; unsigned char EntryUsed0; unsigned char EntryUsed1; unsigned char Track1; unsigned char Track2; unsigned char Entry1;} ENTRY;typedef struct tagTRACKINFO{ BYTE bTrackNO; BYTE bTrackInfo; DWORD dwSectors;} TRACKINFO;typedef struct tagPlayList{ unsigned char cListHeader; unsigned char cNOI; unsigned char cListID[2]; unsigned char cPreviousOffset[2]; unsigned char cNextOffset[2]; unsigned char cReturnOffset[2]; unsigned char cPlayTime [2]; unsigned char cPlayItemWaitTime; unsigned char cAutoPauseWaitTime; unsigned char cItemNO [1000][2]; // suppose not exceed 1999 // need to change to dynamic} PLAYLIST;typedef struct tagSelectionList{ unsigned char cListHeader; unsigned char cReserved; unsigned char cNOS; unsigned char cBSN; unsigned char cListID[2]; unsigned char cPreviousOffset[2]; unsigned char cNextOffset[2]; unsigned char cReturnOffset[2]; unsigned char cDefaultOffset[2]; unsigned char cTimeOutOffset[2]; unsigned char cWaitTime; unsigned char cLoopCount; unsigned char cPlayItemNO[2]; unsigned char cSelectionNO [100][2]; // range from 0 - 99} SELECTIONLIST;// elmer,typedef struct tagFAT12ENTRY{ BYTE bEntry[3];} PACK_FORMAT FAT12ENTRY, *PFAT12ENTRY;///////////////////////////////////////////////////////// Extern variables to other to reference partextern char * __cSector1, * __cSector2, * __cSector3, * __cSector4; // ** TCH0.50;extern WORD __wCDROMReadingRange;extern char _cS []; // ** TCH0.31;extern BYTE __bEXTAttr;extern DWORD __dwSectorDir;extern BYTE __bDVDROM;extern BYTE __bFileSystem;extern DWORD __dwSectorLastSession;extern BYTE _bCDROMDecodingMode;extern DWORD __dwSectorPSD; //It'll record PSD sector NO. as saving read time// wyc2.60-909P,extern BYTE __dwLPath;extern DWORD _dwSectorMPath;extern DWORD _dwMPathSize; // record MPath Sizeextern WORD __wOffsetPSD; // share with cdinfo2.cextern DWORD __dwSectorLOT; //It'll record PSD sector NO. as saving read timeextern DWORD __dwCD2Sector;extern WORD __wStart_INFOVCD, __wStart_ENTRIES;extern BYTE __bVTSN_MultiKeys;extern DWORD __dwSector_MultiKeys [];// wyc2.55-909P-AP,extern BYTE __bIFParseMode;// FAT extern variables.#ifdef SUPPORT_FAT_FILE_SYSTEMextern BYTE __bSecsPerClu;extern WORD __wDataStartSec;extern WORD __wBYTEsPerSec;#endif //// UDF extern variables.#ifndef NO_CDDISC //++CoCo2.37pextern char *__cSectorFE;extern DWORD _dwPDLoc, _dwFSDLoc, _dwFELoc, _dwFIDLoc;extern WORD _wFIDNumber, _wFIDPoint;extern BYTE _bDirNO;extern WORD _wFileNO;#endif //#ifndef NO_CDDISC //++CoCo2.37p// elmer#ifdef SUPPORT_CHAR_SUBPICTUREextern BYTE __bAVIFileCnt, __bMP4SPFileCnt;#endif// wyc2.21-909S, extern variable.extern DWORD _dwIFTempBuffAddr;////////////////////////////////////////////////// export Functions// Export functions that located in INFOFILTER module.BOOL INFOFILTER_GetFileSystem (void);BOOL INFOFILTER_GetDiscTypeFromSource (void);WORD INFOFILTER_RecognizeMedia (void);#ifndef NO_CDDISC //++CoCo2.37pvoid INFOFILTER_PrepareVCD ( WORD wDiscType );#endif //#ifndef NO_CDDISC //++CoCo2.37pBYTE INFOFILTER_AbortParsing(void);BYTE INFOFILTER_TriggerParsingInfo(BYTE bSourceID);BYTE INFOFILTER_ParseInformation(BYTE bSourceID);BYTE INFOFILTER_GetParsingStatus(BYTE bSourceID);BYTE INFOFILTER_TriggerDeletingInfo(BYTE bSourceID);BYTE INFOFILTER_DumpSectors (DWORD dwSecLBA, WORD wSecNO, BYTE* pDumpBuff, DWORD dwDumpBytes, WORD wByteOffset);void INFOFILTER_Thread( DWORD index );void INFOFILTER_ThreadInit(void);void INFOFILTER_ThreadDelete(void);BYTE INFOFILTER_Detect_HDCD(void);BYTE INFOFILTER_Detect_CDDTS(void);BYTE INFOFILTER_Detect_CDG(void);void HAL_DetectChipVersion(void); //kevin0.80avoid INFOFILTER_ResetDumpSectors(void);// wyc2.55-909P-AP,void INFOFILTER_SetParseMode(BYTE bParseMode);// wyc2.17b-909S,void INFOFILTER_CFGUserData(DWORD dwUserDataAddr);// wyc2.21-909S,void INFOFILTER_SetTempBuff(DWORD dwBuffAddr);void INFOFILTER_CFGCDGDetectBuff(DWORD dwBuffST, DWORD dwBuffEND, DWORD dwBuffENDNOCDG);// wyc2.36a-909s,BYTE INFOFILTER_FUSSMPEGCD (BYTE bMode, BYTE bParam);//winnie 2.52, this nwe function to check special vcd disc using mpeg sector format 0x000001BA// wyc2.53-909p,BOOL _INFOFILTER_CheckMPEGVCD(void);// wwyc2.01-909S, prototype.// wyc2.14-909s, move function to utl.h.//void INFOFILTER_ChgDumpMode(BYTE bDumpMode);// Export functions that located in CDINFO module.BOOL CDINFO_GetTrackNO ( BYTE * StartTrack, BYTE * EndTrack, DWORD * LeadOut );BOOL CDINFO_GetTrackInfo ( BYTE TrackNO, DWORD * Startpoint, BYTE * TrackInfo );BOOL CDINFO_ParseInfo ( WORD nMode, DWORD * pdwVal, WORD nSubMode );BYTE CDINFO_CheckSegPlayItem ( WORD nMode, WORD nItem );WORD CDINFO_GetList ( WORD nMode, WORD nSubMode );WORD CDINFO_ParseList ( WORD nMode, WORD * pWord );WORD CDINFO_GetListIDOffset ( WORD nItem );DWORD CDINFO_SearchStartSector ( DWORD dwStartSector );#ifdef TESTBOOL CDINFO_ParseInfoString ( WORD nWord, WORD nTrack, char * pChar, int iLen );#endif // TEST// Parse ISO9660#ifndef NO_CDDISC //++CoCo2.37pBOOL CD_DetectCVDEncryption (void);BOOL CD_GetEntryInfo ( BYTE bType, DWORD * pVal );BYTE CD_GetEntryByFileName(char *pFileName, char *pDirName, DWORD *dwFileLoc, DWORD *dwFileLength);WORD CD_GetFirstEntry ( char * pEntry );WORD CD_SetDirectoryLocation ( DWORD dwSector );WORD CD_GetEntrybyIndex ( BYTE bIndex, char * pEntry );WORD CD_GetTotalEntriesbyDir ( PFILE_LOG pFILELog ); // ** TCH0.38;WORD CD_GetTotalEntriesbyPath ( PFILE_LOG pFILELog ); // ** TCH0.38;DWORD CD_ParserDirectory ( char * pDir, char * pExt );#endif //#ifndef NO_CDDISC //++CoCo2.37p// wyc1.01-909, move prototype to header file to let FAT module can use this function.BYTE CD_CheckExtName(char *pExtName );// wyc2.55-909P-AP,BYTE CD_CheckAPExtName(char *pExtName );// wyc1.11a, new function to parse MP4 char SP file.BYTE CD_CheckMP4SPExtName(char *pExtName );#ifndef NO_CDDISC //++CoCo2.37p// Export functions that located in UDF module. add by scpingextern BYTE UDF_CheckFileSystem(void);extern void UDF_BuildFileSystem(PFAT_FS_FAT_DIRLOG pUDFDir_Log, PFILE_LOG pFile_Log);extern DWORD _UDF_ReadAVDP(void);extern DWORD _UDF_GetFSD(DWORD dwPDLoc);extern DWORD _UDF_GetRoot(DWORD dwFSDLoc);extern DWORD _UDF_ReadRootFE(DWORD dwFELoc);extern BYTE _UDF_ReadFID(DWORD dwFIDLoc, PFAT_FS_FAT_DIRLOG pUDFDir_Log, PFILE_LOG pFile_Log);extern BYTE _UDF_ReadFE(DWORD dwFELoc, PFAT_FS_FAT_DIRLOG pUDFDir_Log, PFILE_LOG pFile_Log);extern WORD UDF_SwapWORD(WORD wData);extern DWORD UDF_SwapDWORD(DWORD dwData);extern BYTE UDF_CheckLayerJump(DWORD dwID, DWORD dwLoc, DWORD dwLen);//BYTE UDF_ReadInfoData(WORD wLBASector, BYTE* pDumpPointer);//BYTE UDF_GetFileSetLoc(void);//BYTE UDF_BuildFileSystem(void);#endif //#ifndef NO_CDDISC //++CoCo2.37p#ifdef SUPPORT_FAT_FILE_SYSTEMextern BYTE FAT_BuildFileSystem(BYTE bSourceID, PFAT_FS_FAT_DIRLOG pFATDir_Log, PFILE_LOG pFile_Log, PMP4SP_INDEX pMP4SPIndex);extern BYTE FAT_CheckUSBSecNum(DWORD *dwTimeNow, DWORD *dwTimeEnd, DWORD dwTimeBegin, DWORD *dwOffset);extern BYTE FAT_GetBPBInfo(BYTE bSourceID);// wyc2.15-909S, extern function.extern DWORD FAT_GetNextClus(BYTE bCallByUSBSRC, DWORD dwClusNum);extern BYTE FAT_AssignFATTableMem(DWORD* pFATTable);extern WORD FAT_GetFATInfo(BYTE bFATInfoType);extern DWORD FAT_ClusToSector(DWORD dwClusNum);extern DWORD FAT_SectorToClus(DWORD dwSecNum);extern BYTE FAT_SetWorkMem(BYTE* pFATBuff, WORD wMemSize);extern void FAT_InitVars(void);// wyc1.06-909, new functionextern BYTE FAT_GetEntryByFileName(char *pFileName, char *pDirName, DWORD *dwFileLoc, DWORD *dwFileLength);#endif //#endif // __INFOFILTER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -