void CMpgSearch::Mount(CArcFile* archive) { // Corresponds to CVM LPCTSTR file_extension = (lstrcmpi(archive->GetArcExten(), _T(".cvm")) == 0) ? _T(".sfd") : _T(".mpg"); SFileInfo file_info; // Get start address file_info.start = archive->GetArcPointer(); archive->Seek(GetHeaderSize(), FILE_CURRENT); archive->GetProg()->UpdatePercent(GetHeaderSize()); // Get footer if (!SearchFooter(archive)) return; // Get exit address file_info.end = archive->GetArcPointer(); // Get file size file_info.sizeOrg = file_info.end - file_info.start; file_info.sizeCmp = file_info.sizeOrg; archive->AddFileInfo(file_info, GetNumFiles(), file_extension); }
void CWmvSearch::Mount(CArcFile* archive) { SFileInfo file_info; // Get start address file_info.start = archive->GetArcPointer(); archive->Seek(GetHeaderSize(), FILE_CURRENT); // Search the auxiliary header if (!SearchFooter(archive)) return; // Amount of progress advanced by the search bar const u64 search_offset = archive->GetArcPointer() - file_info.start - GetHeaderSize(); // Get file size archive->Seek(23, FILE_CURRENT); archive->Read(&file_info.sizeOrg, 4); file_info.sizeCmp = file_info.sizeOrg; // Get exit address file_info.end = file_info.start + file_info.sizeOrg; // Go to the end of the WMV file archive->Seek(file_info.end, FILE_BEGIN); archive->GetProg()->UpdatePercent(file_info.sizeOrg - search_offset); archive->AddFileInfo(file_info, GetNumFiles(), _T(".wmv")); }
void CAhxSearch::Mount(CArcFile* archive) { SFileInfo file_info; // Get start address file_info.start = archive->GetArcPointer(); // Get file ssize archive->Seek(GetHeaderSize() + 2, FILE_CURRENT); archive->Read(&file_info.sizeOrg, 4); file_info.sizeOrg = BitUtils::Swap32(file_info.sizeOrg) << 1; archive->GetProg()->UpdatePercent(4); // Search footer if (!SearchFooter(archive)) return; // Get exit address file_info.end = archive->GetArcPointer(); // Get compressedfile size file_info.sizeCmp = file_info.end - file_info.start; archive->AddFileInfo(file_info, GetNumFiles(), _T(".ahx")); }