Ignore:
Timestamp:
11/13/2008 9:56:14 AM (4 years ago)
Author:
lowjoel
Message:

-Calculate the progress of the extraction
-Added functions to handle the progress updates on-screen

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Installer/Bootstrapper/Bootstrapper.cpp

    r534 r535  
    3535        InStream.Seek = LzFileStreamSeek; 
    3636        FileHandle = fileHandle; 
     37 
     38        FileRead = FileRead = 0; 
     39        LARGE_INTEGER largeInt; 
     40        largeInt.QuadPart = 0; 
     41        if (!SetFilePointerEx(FileHandle, largeInt, &largeInt, FILE_CURRENT)) 
     42            throw GetErrorMessage(GetLastError()); 
     43 
     44        long long currPos = largeInt.QuadPart; 
     45        largeInt.QuadPart = 0; 
     46        if (!SetFilePointerEx(FileHandle, largeInt, &largeInt, FILE_END)) 
     47            throw GetErrorMessage(GetLastError()); 
     48        FileSize = largeInt.QuadPart - currPos; 
     49 
     50        largeInt.QuadPart = currPos; 
     51        if (!SetFilePointerEx(FileHandle, largeInt, NULL, FILE_BEGIN)) 
     52            throw GetErrorMessage(GetLastError()); 
    3753    } 
    3854 
     
    4359 
    4460    ISzInStream InStream; 
     61 
     62private: 
    4563    HANDLE FileHandle; 
    46  
    47 private: 
     64    long long FileRead; 
     65    long long FileSize; 
     66 
    4867    static SZ_RESULT LZFileStreamRead(void* object, void** bufferPtr, size_t size, 
    4968        size_t* processedSize) 
     
    6180            *bufferPtr = buffer; 
    6281            *processedSize = readSize; 
     82            s->FileRead += readSize; 
     83 
     84            SetProgress((double)s->FileRead / s->FileSize); 
    6385        } 
    6486 
     
    128150    unsigned blockIndex = 0; 
    129151    Byte* outBuffer = NULL; 
    130     size_t outBufferSize = 0; 
     152    size_t outBufferSize = 524288; 
    131153    for (unsigned i = 0; i < db.Database.NumFiles; ++i) 
    132154    { 
Note: See TracChangeset for help on using the changeset viewer.