⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infofilter.h

📁 ct952 source code use for Digital Frame Photo
💻 H
📖 第 1 页 / 共 3 页
字号:
#define FILE_RECORD_NONE       (0xFFFC) // mean no record in this file link list#define FILE_RECORD_BEGIN       (0xFFFD)#define FILE_RECORD_END             (0xFFFE)// wyc0.68, mean this file record is not link by sort/filter yet#define FILE_RECORD_CLEAN       (0xFFFF)#define MM_MAX_FILENAME_LENGTH  (12) // total 12 chars in file name.#define MM_MAX_DIRNAME_LENGTH   (10) // total 10 chars in dir name.#define MM_ISO_SUPPORT_FILE_LENGTH  (64)// define for parsing time information from ISO disc#define     IF_TIME_YEAR_RECORD_OFFSET     (1980 - 1900)   // 1980 is our recording begin, 1900 is ISO9660 recorded from 1900.#define     IF_YEAR_SHIFT       26#define     IF_MONTH_SHIFT      22#define     IF_DATE_SHIFT       17#define     IF_HOUR_SHIFT       12#define     IF_MIN_SHIFT        6#define     IF_SEC_SHIFT        0// wyc0.85, add define#define     IF_YEAR_MASK_BIT    0x3F#define     IF_MONTH_MASK_BIT   0xF#define     IF_DATE_MASK_BIT    0x1F#define     IF_HOUR_MASK_BIT    0x1F#define     IF_MIN_MASK_BIT     0x3F#define     IF_SEC_MASK_BIT     0x3F#define     IF_DUMP_IN_SECTOR_SIZE      2048// wyc0.63, add two define for DVD / VCD / CDROM dumped sector number.// wyc0.65, set from 150 to 15 to fix some DVD-ROM can't detect CDROM disc successfully problem.#define     IF_DUMP_SECTOR_NUM_CDROM        15#define     IF_DUMP_SECTOR_NUM_OTHER        5#define     IF_DUMP_SECTOR_NOTCARE_CDROM    0xFE#define     IF_DUMP_SECTOR_NOTCARE_OTHER    0xFF// wyc2.36a-909s,#define     IF_MODE_CONFIG_SUPPORT          0x1#define     IF_MODE_CHECK_MPEG_CD           0x2#define     IF_MODE_CLEAR_MODE              0x3#define     IF_SUOOPRT_FUSS_MPEGCD          0x1#define     IF_MPEG_CD_TRUE                 0x2// wyc2.38a-909s, two mode define #define     IF_DISC_MODE       1#define     IF_DISK_MODE       2// wyc2.55-909P-AP,#define     IF_PARSE_FILE_MODE  1#define     IF_PARSE_AP_MODE    2// wyc2.14-909s, move define to utl.h.// Follow define for used for FAT#define FAT_MAX_SHORT_FILE_NAME     8#define FAT_START_CLUS_NUM          2#define PARSER_SECTOR_SIZE          (2048)#define USB_DEFAULT_SECTOR_SIZE     (512)// wyc1.05-909, add one define to record the cached cluster number in DRAM. Beause FAT16 will use 2 bytes per cluster, // so cached cluster mumber is 1024. Total used DRAM is 2048 bytes.#define FAT12_TABLE_CACHE_CLUS_NUM    (1364)#define FAT16_TABLE_CACHE_CLUS_NUM    (1024)// wyc1.07-909, because FAT32 need 4 bytes to record one cluster in FAT table, so we just use 512 as the cache memory size.#define FAT32_TABLE_CACHE_CLUS_NUM    (512)// maybe different in FAT32#define FAT16_TABLE_OCCUPY_SIZE_PER_CLUS      (2)#define FAT32_TABLE_OCCUPY_SIZE_PER_CLUS      (4)#define FAT_INFO_BYTE_PER_USBSEC            (1)#define FAT_INFO_DATA_START_SEC             (2)#define FAT_INFO_SECTOR_PER_CLUSTER         (3)#define FAT12_TABLE_CLUS_END                  (0xFFF)#define FAT16_TABLE_CLUS_END                  (0xFFFF)#define FAT32_TABLE_CLUS_END                  (0x0FFFFFFF)  // FAT is DWORD reverse. So actural value is 0x0FFFFFFF///////////////////////////////////////////////////////// Structure define part.// Define the structure to keep the title's information for comparing and reading correct title key.typedef struct  tagMULTI_KEYS_TITLE_LOG{    char     cTitleName [15];     // Point to a title name string    BYTE    bRegionInfo;        // Title's region number    BYTE    bTitleSetNo;    // Title set number which has this abnormal phenomenon    DWORD   dwTitleKeyAddress[MAX_TITLE_KEY_NUM];   // Keep first cell start address of each title key} MULTI_KEYS_TITLE_LOG, *PMULTI_KEYS_TITLE_LOG;// follow structure define are for UDFtypedef struct  tagTIMESTAMP{    WORD    wTypeAndTimezone;	  WORD    wYear;	  BYTE    bMonth;	  BYTE    bDay;	  BYTE    bHour;	  BYTE    bMinute;	  BYTE    bSecond;	  BYTE    bCentiseconds;	  BYTE    bHundredsofMicroseconds;	  BYTE    bMicroseconds;}   PACK_FORMAT TIMESTAMP, * PTIMESTAMP; typedef struct  tagEXTENT_AD{    DWORD   dwExtentLength;    DWORD   dwExtentLocation;}   PACK_FORMAT EXTENT_AD, * PEXTENT_AD;typedef struct  tagLB_ADDR{    DWORD   dwLogicBlockNum;    WORD   wParRefeNum;}   PACK_FORMAT LB_ADDR, * PLB_ADDR;typedef struct  tagLONG_AD{    DWORD   dwExtentLength;    LB_ADDR   ExtentLocation;    BYTE    bImpUse[6];}   PACK_FORMAT LONG_AD, * PLONG_AD;typedef struct  tagDESCRIPTOR_TAG{    WORD    wTagIdentifier;    WORD    wDescriptorVersion;    BYTE    bTagCheckSum;    BYTE    bReserved;    WORD    wTagSerialNum;    WORD    wDescriptorCRC;    WORD    wDescriptorCRCLength;    DWORD   dwTagLocation;}   PACK_FORMAT DESCRIPTOR_TAG, * PDESCRIPTOR_TAG;typedef struct  tagICB_TAG{    DWORD    dwPRNDE;    WORD    wStrategyType;    WORD    wStrateryParameter;    WORD    wMaxNumOfEntry;    BYTE    bReserve;    BYTE    bFileType;    BYTE    bParentICBLoc[6];    WORD   wFlag;}   PACK_FORMAT ICB_TAG, * PICB_TAG;typedef struct  tagAVDP_STRUCTURE{    DESCRIPTOR_TAG  DesTag;    EXTENT_AD   MVDST;    EXTENT_AD   RVDST;}   PACK_FORMAT AVDP_STRUCTURE, * PAVDP_STRUCTURE;typedef struct  tagPARTITION_DESCRIPTOR{    DESCRIPTOR_TAG  DesTag;    DWORD   dwVDSNum;    WORD    wPartitionFlags;    WORD    wPartitionNumber;    BYTE    bPartitionContents[32];    BYTE    bPartitionContentUse[128];    DWORD   dwAccessType;    DWORD   dwPartitionStartLocation;    DWORD   dwPartitionLength;}   PACK_FORMAT PARTITION_DESCRIPTOR, * PPARTITION_DESCRIPTOR;typedef struct  tagFILE_SET_DESCRIPTOR{    DESCRIPTOR_TAG  DesTag;    BYTE    bUnUsedByte[384];    LONG_AD     RootICB;}   PACK_FORMAT FILE_SET_DESCRIPTOR, * PFILE_SET_DESCRIPTOR;typedef struct  tagFILE_ID_DESCRIPTOR{    DESCRIPTOR_TAG  DesTag;    WORD    wFileVerNum;    BYTE    bFileCharacteristics;    BYTE    bFILength;    LONG_AD     ICB;    WORD    wIULength;       }   PACK_FORMAT FILE_ID_DESCRIPTOR, * PFILE_ID_DESCRIPTOR;typedef struct  tagFILE_ENTRY_DESCRIPTOR{    DESCRIPTOR_TAG  DesTag;    ICB_TAG ICBTag;    BYTE    bUnUsedByte1[20];    BYTE    bInfoLength[8];    BYTE    bLogicBlock[8];	  TIMESTAMP AccessTime;     BYTE    bUnUsedByte2[84];    DWORD   dwEALength;    DWORD   dwADLength;    LONG_AD    AD1;    LONG_AD    AD2;   }   PACK_FORMAT FILE_ENTRY_DESCRIPTOR, * PFILE_ENTRY_DESCRIPTOR;// follow structure define are for FATtypedef struct  tagFAT_FS_FAT16_BOOT_SECTOR{    WORD wBytesPerSector;    BYTE bSectorsPerCluster;    WORD ReservedSectors;    BYTE bNumberOfFATs;    WORD wRootEntries;    WORD wTotalSectors;       BYTE bMedia;    WORD wSectorsPerFAT;    WORD wSectorsPerTrack;       WORD wHeadsPerCylinder;    DWORD dwHiddenSectors;    DWORD dwTotalSectorsBig;   }   PACK_FORMAT FAT_FS_FAT16_BOOT_SECTOR, * PFAT_FS_FAT16_BOOT_SECTOR;typedef struct  tagFAT_FS_FAT16_BPB{    BYTE bJmp[3];    BYTE bOemName[8];    FAT_FS_FAT16_BOOT_SECTOR bBootSector;    BYTE bDriveNumber;    BYTE bUnused;    BYTE bExtBootSignature;       DWORD dwSerialNumber;    BYTE bVolumeLabel[11];    BYTE bFileSystem[8];   }   PACK_FORMAT FAT_FS_FAT16_BPB, * PFAT_FS_FAT16_BPB;// wyc1.07-909, structure define for FAT32.typedef struct  tagFAT_FS_FAT32_BOOT_SECTOR{    WORD wBytesPerSector;    BYTE bSectorsPerCluster;    WORD ReservedSectors;    BYTE bNumberOfFATs;    WORD wRootEntries;    WORD wTotalSectors;       BYTE bMedia;    WORD wSectorsPerFAT;    WORD wSectorsPerTrack;       WORD wHeadsPerCylinder;    DWORD dwHiddenSectors;    DWORD dwTotalSectorsBig;       DWORD dw32SectorsPerFAT;    WORD w32Flags;    WORD w32Version;    DWORD dw32RootCluster;    WORD w32InfoSector;    WORD w32BootBackupStart;    BYTE b32Reserved[12];}   PACK_FORMAT FAT_FS_FAT32_BOOT_SECTOR, * PFAT_FS_FAT32_BOOT_SECTOR;typedef struct  tagFAT_FS_FAT32_BPB{    BYTE bJmp[3];    BYTE bOemName[8];    FAT_FS_FAT32_BOOT_SECTOR bBootSector;    BYTE b32DriveNumber;    BYTE b32Unused;    BYTE b32ExtBootSignature;       DWORD dw32SerialNumber;    BYTE b32VolumeLabel[11];    BYTE b32FileSystem[8];   }   PACK_FORMAT FAT_FS_FAT32_BPB, * PFAT_FS_FAT32_BPB;// wyc1.02, new structure to parse physical sector.typedef struct  tagMBR{    BYTE bDummy[454];    DWORD dwLBABegin;}   PACK_FORMAT MBR, * PMBR;typedef struct  tagFAT_FS_FAT_SFN_ENTRY{    BYTE bDirName[8];    BYTE bDirExtName[3];    BYTE bDirAttr;    BYTE bReserved;    BYTE bDirCrtTimeTenth;    WORD wDirCtrTime;    WORD wDirCrtDate;    WORD wDirLstAccDate;    WORD wDirFstClusHI;    WORD wDirWrtTime;    WORD wDirWrtDate;    WORD wDirFstClusLO;    DWORD dwDirFileSize;}   PACK_FORMAT FAT_FS_FAT_SFN_ENTRY, * PFAT_FS_FAT_SFN_ENTRY;typedef struct  tagFAT_FS_FAT_LFN_ENTRY{    BYTE bLDirOrd;    BYTE bLDirName1[10];    BYTE bLDirAttr;    BYTE bLDirType;    BYTE bLDirChkSum;    BYTE bLDirName2[12];    WORD bLDirFstClusLO;    BYTE bLDirName3[4];}   PACK_FORMAT FAT_FS_FAT_LFN_ENTRY, * PFAT_FS_FAT_LFN_ENTRY;#define ENTRY_RANGE_LENGTH      8   // wyc1.10, need to increase the length to 7typedef struct  tagENTRY_RANGE{    BYTE cS[4];    DWORD    dwLen;       // ** TCH0.50;}   ENTRY_RANGE, * PENTRY_RANGE;// LLY1.20 create, declare a file range structure.typedef struct tagFILE_RANGE{    DWORD   dwStart;    // Start sector    DWORD   dwLen;      // File length in sector unit} FILE_RANGE, *PFILE_RANGE;// File name information structure// NOTICE!! When update structure of FILENAMEINFO, need also to update FILENAMEINFO_LENGTH also.typedef struct tagFILENAMEINFO{    char    cName[MM_MAX_FILENAME_LENGTH+1];    BYTE    bExtID;}   FILENAMEINFO, * PFILENAMEINFO;// dir name information structure// NOTICE !! When update DIRNAMEINFO structure, need also to modify DIRNAMEINFO_LENGTH.typedef struct tagDIRNAMEINFO{    char    cName[MM_MAX_DIRNAME_LENGTH+1]; // store directory name    BYTE    bMMLinkStatus;    WORD    wMMFileRecordEntry;    WORD    wMMFileRecordEnd;    // wyc1.07-909, can't use define MAX_EXTENSION_NO because it will be changed by SUPPORT_4M_FLASH define, so use another to replace it.    // wyc2.60-909P, seemed don't use in code now.    // WORD    wMMExtFileNum[DEFAULT_MAX_EXTENSION_NO];    // for recording the file number in each extension name in each dirs.}   DIRNAMEINFO, * PDIRNAMEINFO;// wyc1.05-909, move these two define from mmanager.h tp infofilter.h// The structures of TREE record.typedef struct tagTREE_INFO{    BYTE    bParentID;          // parent ID    BYTE    b1stSubDirID;       // 1st sub-directory ID    BYTE    bNoOfSubDir;        // total number of sub-directory}   TREE_INFO, * PTREE_INFO;// wyc1.07-909, move define to here.// Max length of DIR_LOC structure#define DIR_LOC_LENGTH          4typedef struct tagDIR_LOC{    BYTE    bSector[DIR_LOC_LENGTH]; // keep location (3 BYTE unit)}   DIR_LOC, * PDIR_LOC;// Max length of TREE_INFO structure#define TREE_INFO_LENGTH        3// wyc1.05-909, add one define to parse dir information.typedef struct  tagFAT_FS_FAT_DIRLOG{    BYTE bMaxStringLen;    WORD wMaxDirNO;    BYTE bActualDirNO;    PDIRNAMEINFO pDirNameList;    PTREE_INFO pVolumeDirTree;    WORD *pFilesOfDir;    PDIR_LOC pDirLoc;} FAT_FS_FAT_DIRLOG, * PFAT_FS_FAT_DIRLOG;// File record structure// NOTICE!! When update structure of FILE_RECORD, need also to update FILE_RECORD_LENGTH also.typedef struct  tagFILE_RECORD

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -