Example #1
0
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);
}
Example #2
0
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"));
}
Example #3
0
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"));
}